最近在做一个相册的东西,用Picass加载图片,发现内存涨的有点厉害,琢磨的一段时间,有这几个措施
1 如果在不需要缓存图片的地方 加载的时候可以加上
memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
2 在需要缓存图片但是图片数量又较大的时候
Picasso.Builder builder = new Picasso.Builder(context);
mCache = new LruCache(10 * 1024 * 1024);
builder.memoryCache(mCache);
myPicasso = builder.build();
使用
myPicasso.load(new File(url))
.placeholder(R.drawable.ic_photo_loading)
.error(R.drawable.ic_photo_loading)
.resize(mWidth, mWidth)
.centerCrop()
.config(Bitmap.Config.RGB_565)
.into(holder.photoImageView);
在结束的时候调用
myPicasso.invalidate(mDatas.get(i).getPath());
可以将这个url的图片内存释放掉
测试通过,内存情况得到有效控制。