美文网首页
Picasso的简单使用及封装

Picasso的简单使用及封装

作者: 有_味 | 来源:发表于2017-12-14 09:45 被阅读38次

    Picasso的简单使用及封装

    1.添加依赖

    • 在app的build.grand的dependencies下添加依赖
    compile 'com.squareup.picasso:picasso:2.5.2'
    

    简单用法

            Picasso
                    .with(context)
                    .load(url)
                    .into(imageView);
    
    用法很简单,传入 Context context , URL, 和 view 就可以了.

    用简单的一句话说

    • 在(上下文中)传入(地址)到(view上去)
      简单的面向对象思想

    Picasso 的封装

    • 新建一个类PicassoUtils 填入以下代码
    
    
        /**
         * 加载默认图片
         *
         * @param context   上下文
         * @param url       图片地址
         * @param imageView View
         */
        public static void loadImageView(Context context, String url, ImageView imageView) {
            Picasso.with(context).load(url).into(imageView);
        }
    
    
        /**
         * 默认加载指定大小的图片
         *
         * @param context   上下文
         * @param url       图片地址
         * @param imageView View
         * @param width     宽
         * @param height    高
         */
        public static void loadImageViewSize(Context context, String url, ImageView imageView, int width, int height) {
            Picasso
                    .with(context)
                    .load(url)
                    .resize(width, height)
                    .centerCrop()
                    .into(imageView);
        }
    
        /**
         * 加载默认图片(默认有图片)
         *
         * @param context
         * @param url
         * @param imageView
         * @param loadImage  加载默认的图片
         * @param errorImage 加载错误的图片
         */
        public static void loadImageViewDefaultImage(Context context, String url, ImageView imageView, int loadImage, int errorImage) {
            Picasso
                    .with(context)
                    .load(url)
                    .placeholder(loadImage)
                    .error(errorImage)
                    .into(imageView);
        }
    
        /**
         * 裁剪图片
         *
         * @param context
         * @param url
         * @param imageView
         */
        public static void loadImageViewCrop(Context context, String url, ImageView imageView) {
            Picasso
                    .with(context)
                    .load(url)
                    .transform(new CropSquareTransformation())
                    .into(imageView);
        }
    
        /**
         * 按比例裁剪矩形
         */
        public static class CropSquareTransformation implements Transformation {
            @Override
            public Bitmap transform(Bitmap source) {    //传入加载的图片
                int size = Math.min(source.getWidth(), source.getHeight());     //获取图片宽高的最小值.
                int x = (source.getWidth() - size) / 2;
                int y = (source.getHeight() - size) / 2;
                Bitmap result = Bitmap.createBitmap(source, x, y, size, size);  //创建一个新的Bitmap
                if (result != source) {
                    //回收
                    source.recycle();
                }
                return result;
            }
            @Override
            public String key() {
                return "square()";
            }
        }
    

    个人拙见 ,如有错误请指正!

    相关文章

      网友评论

          本文标题:Picasso的简单使用及封装

          本文链接:https://www.haomeiwen.com/subject/ttphwxtx.html