Android: Gridview кеширует устаревший элемент. Как обеспечить вызов getview для каждого отображаемого элемента при перезагрузке страницы? - PullRequest
0 голосов
/ 31 января 2011

Контекст:

У меня есть основное действие, содержащее 6 вкладок, каждая вкладка содержит сетку с 30+ изображениями и около 8 изображений, которые отображаются в любой момент (каждое сетку можно прокручивать).

С этими многими изображениями я реализовал простую систему кеширования, которая должна кэшировать только последние 25 из них, если новое изображение необходимо отображать, а его нет в кэше, я декодирую это изображение из каталога / data / date иперезаписать самую старую запись в кеше.И перед тем как перезаписать самую старую запись, я вызову для этого Bitmap.recycle ().

Проблема:

В какой-то момент, после отправки более 25 изображений, старые изображения начнут перерабатываться,если бы мне пришлось теперь вернуться к одной из вкладок, где их изображения больше нет в кеше, метод GetView позаботится о том, чтобы снова загрузить картинку.Проблема не в том, что первый элемент в Gridview будет вызывать GetView, остальная часть изображения никогда не получит вызов, и Gridview попытается отобразить кэшированное изображение там, где оно уже было переработано.

Любое предложение?или заставить получить представление или умный способ кеширования изображения в этом сценарии?

Сильно ценится

Спасибо

1 Ответ

0 голосов
/ 31 января 2011

Я решил эту проблему, создав собственный ImageView, расширяющий Android ImageView.Затем переопределил метод onDraw (Canvas canvas) и добавил логику для перезагрузки кеша, если кеш пропал.

выглядит хаки ... но работал как хотел.очень жаль, что я не могу добиться большего успеха, если есть кто-то, кто может научить меня.Спасибо за тонну !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...