优化View Pager内的图像

时间:2013-05-05 14:44:43

标签: android android-viewpager android-imageview android-image android-memory

我的ViewPager大约有10页。所有页面的分辨率都超过1000x2000。基本上,不同图像的图像宽度不同。因为我无法放置超过2048宽度的图像所以我使用了2张图像(将一张图像分成2张图像)。所以每页都有2张图像和其他视图。

我尝试了很多优化方法,但能够进行优化。 我尝试将ImageView null设置为null,甚至将其位图设置为null,甚至删除所有视图并使其在destroy和Optimize bitmaps inside ViewPager

中为空

在此我使用Asyntask在屏幕上加载图像。甚至尝试在Cache中存储图像。但仍面临与记忆相关的问题。

需要建议我如何优化更多并避免内存不足。

1 个答案:

答案 0 :(得分:0)

我通过让AsyncTask从资源加载图片来解决这个问题。从内存加载后,我将其存储在LRU缓存中。然后我从缓存中检索它。

doInBackgroud()我有:

BitmapFactory.Options mOptions = new BitmapFactory.Options();
    mOptions.inPurgeable = true;
    mOptions.inPreferredConfig = Bitmap.Config.RGB_565;
    mOptions.inPreferQualityOverSpeed = false;
    mOptions.inJustDecodeBounds = false;
    mOptions.inScaled = true;



        SoftReference<Bitmap> bm = new SoftReference<Bitmap>(
                BitmapFactory.decodeResource(
                    getApplicationContext().getResources(), data,
                        mOptions));
        return bm.get();

有了这个,我正在onDestroy()中回收图像并使Bitmap为空。