Picasso的简单使用及封装

2017-12-14  本文已影响38人  有_味

Picasso的简单使用及封装

1.添加依赖

compile 'com.squareup.picasso:picasso:2.5.2'

简单用法

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

用简单的一句话说

Picasso 的封装



    /**
     * 加载默认图片
     *
     * @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()";
        }
    }

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

上一篇下一篇

猜你喜欢

热点阅读