我正在加载大约50个图像。在我的活动中,我有这个配置
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
.cacheOnDisk(true).cacheInMemory(true)
.imageScaleType(ImageScaleType.EXACTLY)
.resetViewBeforeLoading(true)
.displayer(new FadeInBitmapDisplayer(300))
.build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.defaultDisplayImageOptions(defaultOptions)
.memoryCache(new WeakMemoryCache())
.diskCacheSize(100 * 1024 * 1024)
.build();
ImageLoader.getInstance().init(config);
在宾德尔达
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(uri, holder.iv_img);
有些图像已加载,但有些图像未加载,因此出现
OutOfMemory
错误。 最佳答案
从Useful Info查看此提示
如果你经常在你的应用程序中使用通用镜像时出现内存错误
装载机然后:
禁用内存缓存。如果仍然出现OOM,则您的应用程序似乎存在内存泄漏。用记忆分析仪检测。否则
尝试以下步骤(全部或多个步骤):
减少配置中的线程池大小(.thread pool size(…))。建议1-5。
在显示选项中使用.bitmap config(bitmap.config.rgb_565)。rgb_565中的位图消耗的内存是argb_8888中的2倍。
use.imagescaletype(imagescaletype.exactly)(您已经使用了此提示)
在配置中使用.diskCacheExtraOptions(480320,空)
希望这有帮助!啊!