Я просмотрел несколько постов о отложенной загрузке, но я считаю, что моя проблема немного другая.
У меня есть галерея (мой класс расширяет Галерея), которая отображает 20 довольно больших по размеру изображений (400-500K каждое). Я не могу загрузить их все в галерею, поскольку получаю исключение OutOfMemory.
Итак, я создал массив из 20 Drawables и первоначально заполнил первые 9 элементов (изображения приходят из Интернета) и установил все остальные на ноль. Мое намерение состояло в следующем: при переходе вправо, получить элемент №. 10 и установить в нулевой элемент №. 0. На другой бросок к правой выборке элемента нет. 11 и установить в нулевой элемент №. От 1 до нуля. Та же логика на левом фланге.
Проблема в том, что я могу летать намного быстрее, чем извлекаемые элементы.
В моей галерее есть BaseAdapter, и его getView () выглядит примерно так:
public View getView(int position, View convertView, ViewGroup parent){
ImageView imageView = new ImageView();
imageView.setDrawable(imageArray[position];
....
....
return imageView;
}
Как мне сказать getView () - если imageArray [position] по-прежнему нулевое, показать диалоговое окно "loading ..." и после его установки повторить себя с той же позицией?
Я не хочу видеть imageView пустым, а затем установить на лету. Я хочу вообще не видеть imageView, пока он не установлен.
Спасибо.