在GridView Android上增长堆(frag case)

时间:2014-04-16 08:41:34

标签: android bitmap

所以我有一个GridView,每个项目都有一个TextView和一个ImageView。 ImageView的drawable正在被res / drawable文件夹解析。当我在我的getView()方法(在我的自定义适配器上)时,我只是根据位置添加每个drawable。 所以代码非常像:

imageView.setImageResource(mThumbIds[position]);

给了我一些Grow Heap(frag case),如:

Grow heap (frag case) to 13.800MB for 1166416-byte allocation
Grow heap (frag case) to 15.834MB for 1128016-byte allocation
Grow heap (frag case) to 17.829MB for 453616-byte allocation

我正在使用总尺寸为1.6M的12张图像(jpeg文件)

所以我根据d.android.com上的load bitmap文章更改了我的代码。 使用 calculateInSampleSize 我会根据jpeg的大小得到1,2或4的因子。 将这些值设置为options.inSampleSize我认为这足以减少我的堆大小,但我在logcat上获得相同的Grow Heap消息!

还尝试了 inPurgeable 选项,但也没有帮助。

我仍然得到的是:

Grow heap (frag case) to 13.958MB for 1166416-byte allocation
Grow heap (frag case) to 15.834MB for 1128016-byte allocation

对此有何建议?我做错了什么?为什么options.inSampleSize无法帮助我减少字节分配?

1 个答案:

答案 0 :(得分:1)

您需要回收位图图片..

这可能会对你有所帮助

How to recycle Bitmaps in gridview adapter?