LruCache 为指定键返回错误的位图

LruCache returning wrong bitmaps for specified key

我对 Android 开发还很陌生。

我 运行 遇到从我的 LruBitmapCache 获取正确位图的问题。我使用 UUID 生成一个唯一的 ID,我不使用 URL,因为我在 canvas 上生成位图。 (我正在将 getDrawingCache() 从我的视图复制到新位图(使用副本),然后将副本存储到缓存中)。

出于某种原因,在我存储位图后,当我访问它时,它最终变成了另一个 ID 的位图...有时会发生这种情况。有任何想法吗?

我使用 currentIndex 来跟踪我在缓存键数组中的位置(我想按顺序保存并浏览 canvas 上的 bitamp)。我想我正在更新缓存中的条目错误...

一位开发人员提供了帮助。我做错了 mDrawingView.restartDrawingCache(); 并且顺序错误。

应该是:

<drawing view>.setDrawingCacheEnabled(true);
Bitmap mmap= <drawing view>.getDrawingCache();
Bitmap copy = mmap.copy(mmap.getConfig(), false);
<drawing view>.setDrawingCacheEnabled(false);

干杯,也许这会对某人有所帮助:)