Я создал бесконечный список прокрутки с большими изображениями, сравнимый с Instagram/Facebook/Tumblr.
Я использую https://github.com/etsy/AndroidStaggeredGrid, основанный на AbsListView и https://github.com/nostra13/Android-Universal-Image-Loader для моих изображений. Я использую шаблон просмотра для своих элементов.
Проблема в том, что я продолжаю получать ошибки OOM (+50 элементов с 200 тыс. изображений), я перепробовал все настройки универсального загрузчика изображений (UIL), но это мало что меняет. Когда я беру большой (2 МБ) рисунок и заполняю его без загрузчика изображений, все работает идеально, и элементы перерабатываются под капотом.
Кажется, что комбинация UIL и Gridview не работает вместе, и изображения не перерабатываются. Я пробовал использовать imageloader.showImage по умолчанию, а также imageloader.loadimage и onLoadingCompleteCallback. Кроме того, я попытался удалить целевое изображение из окна просмотра, но это только привело к ухудшению производительности.
Краткий список уже испробованных вещей:
- отключить кэш памяти UIL
- отключить дисковый кеш UIL
- использовать
.resetViewBeforeLoading(true)
UIL - изображения с измененным размером
- setRecyclerListener --> конструкция onMovedToScrapHeap для сетки (не вызывается!)
- снижение качества JPG
ВАЖНО: он работает с обычными чертежами в приложении!
Кто-нибудь знает, как это исправить/отладить?
Трассировка стека:
java.lang.OutOfMemoryError
at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
at android.graphics.BitmapFactory.decodeStreamInternal(BitmapFactory.java:613)
at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:589)
at com.nostra13.universalimageloader.core.decode.BaseImageDecoder.decode(BaseImageDecoder.java:78)
РЕДАКТИРОВАТЬ: замененный UIL для Android Volley действительно решил проблему для меня, однако это обходной путь.
I Use a viewholder pattern for my items.
- Хммм... Вы уверены, что правильно используете паттерн ViewHolder? В какой степени представления действительно перерабатываются? - person Jim G.   schedule 27.04.2014