Я имел дело с этим некоторое время назад.Экспериментировал с производительностью тоже.Вот что я получил.
Этот ответ выходит за рамки отложенная загрузка изображений , потому что он имеет дело с производительностью.
Прежде всего: забудьте о SoftReferences
на андроиде.Очень плохо для кеширования из-за неправильного поведения (скоро выйдет).В итоге я использовал LruCache ( источник для API <12 </a>) с фиксированным размером байта для кэша.
При загрузке изображений по сети вы хотите сохранить загруженныйизображения (в личной папке данных приложения или на SD-карте).В противном случае пользователь вынужден загружать (ненужные) данные при каждом запуске приложения.Вот процедура:
- запрашивается изображение
- проверка изображения в кэше памяти (переход к 6., если доступно)
- сохраняется локально (переход к 5.если это так)
- загрузка из сети и сохранение
- загрузка растрового изображения в кеш
- загрузка растрового изображения из кеша в представление
Теперь несколько слов о производительности,Если у каждого элемента списка есть другое изображение, и они имеют фиксированный размер (например, 40 x 40 dip
), вы потратите кеш-память при загрузке полных изображений (например, 800 x 600 px
), и ваше устройство должно будет рассчитать много для масштабирования.1032 * Первое решение - предварительно масштабировать растровое изображение на шаге 5.
перед загрузкой изображения в кэш.Вы получите наилучшую производительность, если сохраните масштабированное изображение и загрузите его в следующий раз.
Пример можно найти в моем CoverCache помощнике (обложках компакт-дисков - но может использоваться для любоговид данных изображения).Он имеет дело с сохранением, масштабированием и кэшированием изображений одновременно.