Универсальный загрузчик изображений android listview не хватает памяти

Я создал бесконечный список прокрутки с большими изображениями, сравнимый с 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 действительно решил проблему для меня, однако это обходной путь.


person user2964904    schedule 31.03.2014    source источник
comment
I Use a viewholder pattern for my items. - Хммм... Вы уверены, что правильно используете паттерн ViewHolder? В какой степени представления действительно перерабатываются?   -  person Jim G.    schedule 27.04.2014
comment
Связано: stackoverflow.com/q/19289812/109941   -  person Jim G.    schedule 27.04.2014
comment
Я довольно долго изучал это и в итоге исправил, используя Android Volley Lib вместо UIL для изображений. Затем проблемы с памятью были решены.   -  person user2964904    schedule 29.04.2014