Удаленные изображения в ListView с шаблоном ViewHolder

Главный вопрос:

Каков наиболее эффективный безошибочный метод отложенной загрузки удаленных изображений в простом адаптере ListView, который использует шаблон ViewHolder?

В настоящее время у меня есть реализация. который сначала проверит SoftReference Bitmap HashMap на наличие версии изображения с мягким кешем. Если это не удается, я проверяю свой жесткий кеш на наличие копии изображения. Если это не удается, я получаю его из Интернета. Я делаю все это в отдельном потоке и в очереди, чтобы исключить одновременные или повторяющиеся загрузки.

Проблема при загрузке через обратный вызов. Поскольку я использую шаблон ViewHolder, мои представления постоянно перерабатываются, и я не нашел надежного способа избавиться от различных изображений, случайным образом прикрепляемых к моим ImageViews. Я использую по умолчанию изображение по умолчанию перед каждой загрузкой, но поскольку представления перерабатываются так быстро, «старые» слушатели применяются к моему ImageView, предоставляя неправильное изображение, которое затем заменяется правильным изображением.

Единственное полутвердое решение, которое я нашел, - это использовать сам ViewHolder в качестве слушателя, но это только делает проблему менее очевидной. Это все еще происходит при быстрой прокрутке.

Любая помощь будет принята с благодарностью.

Обновление:

https: // github.com / DHuckaby / Prime

7
задан HandlerExploit 10 April 2012 в 23:51
поделиться