LruCache возвращает неверные растровые изображения для указанного ключа

Я очень новичок в разработке Android.

У меня возникают проблемы с получением правильного растрового изображения из моего LruBitmapCache. Я использую UUID для создания уникального идентификатора, я не использую URL-адрес, потому что я создаю растровое изображение на холсте. (Я копирую getDrawingCache() из своего представления в новое растровое изображение (используя копию), а затем сохраняю копию в кеше).

По какой-то причине после того, как я сохранил растровое изображение, когда я обращаюсь к нему, оно оказывается растровым изображением для другого идентификатора... иногда это происходит. Есть идеи?

Я использую currentIndex, чтобы отслеживать, в какой позиции я нахожусь в массиве cachedKeys (я хочу последовательно сохранять и перемещаться по битампу на холсте). Я думаю, что неправильно обновляю запись в кеше...


person anpatel    schedule 02.03.2015    source источник


Ответы (1)


Помогал коллега-разработчик. Я делал mDrawingView.restartDrawingCache(); неправильно и в неправильном порядке.

Это должно было быть:

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

Приветствую, может это кому-то поможет :)

person anpatel    schedule 02.03.2015