我正在加载大约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,空)
希望这有帮助!啊!

07-28 02:07
查看更多