RecyclerView图像重用

时间:2016-03-09 21:57:43

标签: android image memory-management android-resources

我有一个应用程序,可以在recyclerview中重用图像。我想知道重复使用相同图像保存资源的最佳方法。我对记忆的使用知识充其量只是没有。

我有一个图像根据其在应用程序中的使用而缩放,但是当在列表中时,显示相同图像的最佳方式是什么。图像存储器是否被重用于其中任何一个,或者每个图像分别占用一块内存。有没有更好的办法?

   pholder.nodeImage.setImageBitmap(Tools.decodeSampledBitmapFromResource(context.getResources(),R.drawable.folder,50,50));
    or
   pholder.nodeImage.setImageResource(R.drawable.folder);

1 个答案:

答案 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);
    }
}