compile 'com.squareup.picasso:picasso:2.5.2'
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()方法
按比例填充 控件 注意⚠️ 一定要设置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);