Picasso 简单使用

来源:互联网 发布:ip地址和端口的关系 编辑:程序博客网 时间:2024/06/04 01:20
compile 'com.squareup.picasso:picasso:2.5.2'

or   下面这个是作者  针对okhttp3 出来以后的修改
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.1.0'


最简单实用

Picasso.with(this)        .load(url)        .into(image);

设置 占位图标和错误图标
Picasso.with(this)        .load(url)        //设置占位图标        .placeholder(R.mipmap.ic_launcher)        //设置错误图标        .error(R.mipmap.ic_launcher)        .into(image);


设置缩放模式  cneterCrop 相当于xml文件中android:scaleType="centerCrop"
   按比例填充 控件  注意⚠️  一定要设置resize()方法
重载方法resizedimen()   里面传递的参数是资源文件
 Picasso.with(this)                .load(url)                .resize(200,200)//                .resizeDimen(R.dimen.hi,R.dimen.we)  //上面的重载方法                .centerCrop()//设置缩放模式 使用centerCrop()方法必须要使用resize()方法剪裁                .into(image);

设置缩放模式2  fit   相当于xml 文件中 android:scaleType="fitXY"
Picasso.with(this)        .load(url)        .fit()  //不能设置 resize()方法        .into(image);

设置图片的加载和停止
Picasso picasso = Picasso.with(this);picasso.load(url)        .tag("tag") //对picasso进行设置tag 便于停止和开始        .into(image);//继续加载图片picasso.resumeTag("tag");//暂停加载图片picasso.pauseTag("tag");


加载图片成功后回调方法
Picasso picasso = Picasso.with(this);        picasso.load(url)                .into(image, new Callback() {                    @Override                    public void onSuccess() {                            //.....                    }                    @Override                    public void onError() {                            //.....                    }                });


对图片进行二次 处理  将图片变成圆形

Picasso picasso = Picasso.with(this);picasso.load(url)        //对图片二次处理        .transform(new Transformation() {            @Override            public Bitmap transform(Bitmap source) {                return null;            }        //返回任意字符串 不能返回null            @Override            public String key() {                return "picasso";            }        })        .into(image);

//设置转换类型为 圆  原理:长方形图片与一个圆相交 取交集final Transformation transformation = new Transformation() {    //参数为下载到到原图    @Override    public Bitmap transform(Bitmap source) {        int width = source.getWidth();        int height = source.getHeight();        //圆半径  取宽高最小边/2          int radius = Math.min(width, height) >> 1;        //设置空白bitmap 加载到画布上面  最后显示时bitmap     半径的两倍        Bitmap blankBitmap = Bitmap.createBitmap(radius<<1, radius<<1, Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(blankBitmap);        Paint paint = new Paint();        paint.setAntiAlias(true);        //第一次画一个圆        canvas.drawCircle(radius, radius, radius, paint);        //第二次取交集模式  其他方式见下图        paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));        //使用 原图 与圆相交        canvas.drawBitmap(source, 0, 0, paint);        if (source != null && !source.isRecycled()) {            source.recycle();        }        return blankBitmap;    }    @Override    public String key() {        return "heh"; //任意字符串    }};



自定义 缓存路径  自定义okhttp 框架加载

//弥补 okhttp升级到3。0之后默认   不能使用okhttp加载Picasso picasso = new Picasso.Builder(this)        .downloader(new OkHttp3Downloader(this))        .build();//保证只有一个单例Picasso.setSingletonInstance(picasso);picasso.load(url).into(image);






0 0
原创粉丝点击