【问题标题】:RecyclerView image reuseRecyclerView 图像复用
【发布时间】:2016-06-24 12:41:50
【问题描述】:

我有一个应用程序可以在 recyclerview 中重复使用图像。我想知道重复使用相同图像来节省资源的最佳方法。我对内存使用的了解充其量是没有的。

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

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

【问题讨论】:

    标签: android image memory-management android-resources


    【解决方案1】:

    将您的图像放入缓存中,您可以使用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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-02
      • 1970-01-01
      • 2023-03-21
      • 2021-12-11
      • 1970-01-01
      • 2021-03-10
      • 1970-01-01
      • 2020-06-18
      相关资源
      最近更新 更多