Если вы выполняете сетку для загрузки 20 изображений с таким разрешением, я бы предложил следующее:
Определенно уменьшите размер изображений. Если вы не настроили таргетинг на планшет, все будет в порядке, поскольку большинство смартфонов не могут достичь этого разрешения с 20 изображениями.
Кэшируйте изображения, если можете.
Загрузите изображения в другой ветке. Сохраните HashMap, чтобы вам было легко, просто поместите все изображения с именами файлов изображений или другими идентификаторами в качестве ключей. отправьте сообщение вашему обработчику, когда изображения будут загружены, и обновите представление после его декодирования. Вы можете получить ваши взгляды напрямую. Просто не забудьте проверить, если они все еще в окне. Таким образом, изображения будут отображаться один за другим быстро. Я не думаю, что многопоточность изображений поможет, просто убедитесь, что вы используете другой поток для «проталкивания изображений» и обновления основного потока пользовательского интерфейса. Пользовательский опыт будет значительно улучшен.
Надеюсь, это поможет.
--- некоторые реализации, у меня сейчас нет полного кода со мной ---
Имейте структуру данных, чтобы соответствовать представлениям с входящими данными. Очень удобно здесь.
private HashMap<String,ImageView> pictures;
Когда вы получите список URL изображений, выполните их итерацию:
pictures.put(id,view);
try{
FileInputStream in = openFileInput(id);
Bitmap bitmap = null;
bitmap = BitmapFactory.decodeStream(in, null, null);
view.setImageBitmap(bitmap);
}catch(Exception e){
new Thread(new PictureGetter(this,mHandler,id)).start();
}
(Здесь средство получения изображений просто извлечет изображение, если оно еще не кэшировано, и кэширует его)
Код для обновления вида изображения:
if(id!=null){
ImageView iv = pictures.get(id);
if(iv!=null){
try{
FileInputStream in = openFileInput(id);
Bitmap bitmap = null;
bitmap = BitmapFactory.decodeStream(in, null, null);
iv.setImageBitmap(bitmap);
}catch(Exception e){
}
}