То, что я обнаружил в основном по этой же проблеме, так это. Ленивый Загрузите ваши изображения в фоновом режиме. Находясь в onpostexecute, не отображайте изображения вообще, так как при переворачивании экрана текущее отображение начинает сходить с ума, как мультимедийное слайд-шоу, где ваши изображения мигают и могут обновляться некорректно. Затем я обнаружил, что если вы сделаете обнаружение Fling по переменной gridview, например:
mPhotoView.setOnScrollListener(new OnScrollListener() {
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub
if(scrollState != SCROLL_STATE_IDLE) {
mAdapter.setFlinging(true);
} else {
mAdapter.setFlinging(false);
}
int first = view.getFirstVisiblePosition();
int count = view.getChildCount();
if (scrollState == SCROLL_STATE_IDLE || (first + count >
mAdapter.getCount()) ) {
mPhotoView.invalidateViews();
}
}
});
invalidateViews приведет к обновлению только что загруженных изображений. Кроме того, при обращении к загрузчику Lazy background сразу после запуска процесса я загружаю растровое изображение заполнителя. Мне только сейчас нужно найти способ получить несколько из оставшихся изображений-заполнителей, которые каким-то образом пробираются через некоторые из свитков, которые будут обновляться, когда изображения станут доступны. Ленивые загрузчики находятся по всему Интернету и считают, что это гораздо лучший способ загрузки удаленных изображений, чем код, указанный выше. Это одна из самых хитрых вещей, которые пытается выполнить Андройдер. У меня ушло столько времени, сколько у всех остальных "гуч", с которыми я сталкивался. Надеюсь, это прояснит для вас. Удачного кодирования.