Out Of memory error using Universal Image Loader and images getting refreshed

守給你的承諾、 提交于 2019-11-29 07:56:05

Set .resetViewBeforeLoading() in DisplayImageOptions.

try next (all of them or several):

Reduce thread pool size in configuration (.threadPoolSize(...)). 1 - 5 is recommended. Use

 .bitmapConfig(Bitmap.Config.RGB_565)     

in display options. Bitmaps in RGB_565 consume 2 times less memory than in ARGB_8888. Use

.memoryCache(new WeakMemoryCache()) 

in configuration or disable caching in memory at all in display options (don't call .cacheInMemory()). Use

.imageScaleType(ImageScaleType.IN_SAMPLE_INT)

in display options. Or try

.imageScaleType(ImageScaleType.EXACTLY).

Avoid using RoundedBitmapDisplayer. It creates new Bitmap object with ARGB_8888 config for displaying during work.

make sure you make Image size as require in Your ImageLoader

// decodes image and scales it to reduce memory consumption
    private Bitmap decodeFile(File f) {
        try {
            // decode image size
            BitmapFactory.Options o = new BitmapFactory.Options();
            o.inJustDecodeBounds = true;
            BitmapFactory.decodeStream(new FileInputStream(f), null, o);

            // Find the correct scale value. It should be the power of 2.
            final int REQUIRED_SIZE = 70;
            int width_tmp = o.outWidth, height_tmp = o.outHeight;
            int scale = 1;
            while (true) {
                if (width_tmp / 2 < REQUIRED_SIZE
                        || height_tmp / 2 < REQUIRED_SIZE)
                    break;
                width_tmp /= 2;
                height_tmp /= 2;
                scale *= 2;
            }

            // decode with inSampleSize
            BitmapFactory.Options o2 = new BitmapFactory.Options();
            o2.inSampleSize = scale;
            return BitmapFactory.decodeStream(new FileInputStream(f), null, o2);
        } catch (FileNotFoundException e) {
        }
        return null;
    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!