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);
干杯,也许这会对某人有所帮助:)
我对 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);
干杯,也许这会对某人有所帮助:)