美文网首页
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