我有一个应用程序,可以在recyclerview中重用图像。我想知道重复使用相同图像保存资源的最佳方法。我对记忆的使用知识充其量只是没有。
我有一个图像根据其在应用程序中的使用而缩放,但是当在列表中时,显示相同图像的最佳方式是什么。图像存储器是否被重用于其中任何一个,或者每个图像分别占用一块内存。有没有更好的办法?
pholder.nodeImage.setImageBitmap(Tools.decodeSampledBitmapFromResource(context.getResources(),R.drawable.folder,50,50));
or
pholder.nodeImage.setImageResource(R.drawable.folder);
答案 0 :(得分:0)
将图片放入缓存中,您可以使用LruCache class 图像在应用程序生命周期中被缓存,并在应用程序存在时被丢弃。您可以根据要缓存的预期图像数量,大小以及运行应用程序的设备调整缓存大小。
int cacheSize = 4 * 1024 * 1024; // 4MiB
LruCache bitmapCache = new LruCache(cacheSize) {
protected int sizeOf(String key, Bitmap value) {
return value.getByteCount();
}
}
synchronized (cache) {
if (cache.get(key) == null) {
cache.put(key, value);
}
}