android listview通用图像加载器内存不足视图

时间:2014-03-31 22:53:32

标签: android-listview universal-image-loader staggered-gridview

我构建了一个带有大图像的无尽滚动列表视图,可与Instagram / Facebook / Tumblr相媲美

我使用基于AbsListView的https://github.com/etsy/AndroidStaggeredGrid和我的图像https://github.com/nostra13/Android-Universal-Image-Loader。我为我的项目使用视图模式。

问题是我继续收到OOM错误(带有200K图像的+50项),我尝试了通用图像加载器(UIL)的所有设置,但它只做了很少的改动。当我拿一个大的(2MB)drawable并填充那个没有imageloader的东西时,一切都很完美,并且物品在引擎盖下被回收。

似乎UIL和Gridview的组合无法协同工作,图像也无法回收。我尝试使用默认的imageloader.showImage以及imageloader.loadimage和onLoadingCompleteCallback。此外,我尝试从视图中删除目标imageview,但这只会导致性能下降。

已经尝试的事情的快速列表:

  • 禁用UIL的内存缓存
  • 禁用UIL的磁盘缓存
  • 使用UIL的.resetViewBeforeLoading(true)
  • 调整大小的图片
  • setRecyclerListener - >网格的onMovedToScrapHeap构造(未调用!)
  • 降低JPG质量

重要提示:它适用于普通的app应用程序!

任何人都知道如何修复/调试这个?

stacktrace:

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 for Android Volley确实为我解决了问题,但这是一个解决方法。

0 个答案:

没有答案