Picasso不仅实现了图片异步加载的功能,还解决了android中加载图片时需要解决的一些常见问题:
- 在adapter中需要取消已经不在视野范围ImageView图片资源的加载,否则会导致图片错位,Picasso已经解决了这个问题。
- 使用复杂的图片压缩转换来尽可能的减少内存消耗
- 自带内存和硬盘二级缓存功能
Picasso库的引入:在线搜索picasso库,加入到gradle再同步即可引入picasso库
- 加载本地图片,并做压缩和旋转:
//加载本地图片
Picasso.with(this).load("file:///sdcard/Download/ddd.jpg").resize(100,100).rotate(180,0,0).into(mivPic);
- 加载网络图片,并设置不使用内存缓存中查找也不存储内存缓存,对于本地缓存,如果用okhttp,可以设这两者,如果是默认的downloader,只能设置NO_CACHE:
//加载网络图片
Picasso.with(this). load(mstrNetUrl). //networkPolicy(NetworkPolicy.NO_CACHE,NetworkPolicy.NO_STORE).
memoryPolicy(MemoryPolicy.*NO_CACHE*,MemoryPolicy.*NO_STORE*). into(mivPic);
- 设置占位图片:
Picasso.with(context)
.load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);
如果加载发生错误会重复三次请求,三次都失败才会显示erro Place holde
网友评论