Цель AdapterView
s - это именно ваше "нежелательное поведение", чтобы в память загружалось как можно меньше элементов.Реальное решение состоит в том, чтобы кэшировать ваши изображения на диске, чтобы вам не приходилось их снова извлекать.Если вы уже не извлекаете их с диска, в таком случае я бы спросил, зачем вам это нужно?
Редактировать:
Конечно, люди здесь знают, как кэшировать, возможно, вызадавать правильные вопросы?И да, вы определенно хотите реализовать кеш.Во всяком случае, кэширование Bitmap
s:
private void putBitmapInDiskCache(Uri url, Bitmap avatar) {
File cacheDir = new File(context.getCacheDir(), "thumbnails");
File cacheFile = new File(cacheDir, ""+url.hashCode());
try {
cacheFile.createNewFile();
FileOutputStream fos = new FileOutputStream(cacheFile);
avatar.compress(CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();
} catch (Exception e) {
Log.e(LOG_TAG, "Error when saving image to cache. ", e);
}
}
Чтобы прочитать их, это похоже:
fis = new FileInputStream(cacheFile);
Bitmap local = BitmapFactory.decodeStream(fis);