Picasso是square公司开源的框架
使用非常简单,只需要调用下面这句话
Picasso.with(context).load(
"http://i.imgur.com/DvpvklR.png"
).into(imageView); 、
但是在显示的时候还可以设置一下其他的参数
Glide.with(getContext()).load(url)
.asBitmap()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(R.mipmap.card)
.fallback(R.mipmap.card)
.into(holder.icCardIcon);
主要的特性有:
- 在adapter中回收和取消当前的下载
- 使用最少的内存完成复杂的图形转换操作
- 自动的内存和硬盘缓存
- 图形转换操作,如变换大小、旋转等,提供接口来让客户可以自定义转换操作
- 加载网络或本地资源
解决了各种图片加载的问题
1、在adapter中需要取消已经不再视野范围的ImageView图片资源的加载,否则会导致图片的错乱,Picasso已经解决了这个问题
2、使用复杂的图片压缩转换来尽可能的减少内存消耗
3、自带内存和硬盘二级缓存功能
图片转换:转换图片以适应布局大小并减少内存占用
Picasso.with(context).load(url).centerCrop().into(imageView);
你还可以自定义转换:
1 2 3 4 5 6 7 8 9 10 11 12 13 | public 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); if (result != source) { source.recycle(); } return result; } @Override public String key() { return "square()"; } } |