所以我有一個GridView,每個項目都有一個TextView和一個ImageView。 ImageView的drawable正在被res/drawable文件夾解析。當我在我的getView()方法(在我的自定義適配器上)時,我只是根據位置添加每個drawable。 因此,代碼是非常像:在GridView Android上增長堆(frag case)
imageView.setImageResource(mThumbIds[position]);
這給了我一些成長堆(FRAG情況下),如:
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
我使用的12張圖像(JPEG文件),總規模1.6 M
因此,我根據d.android.com上的load bitmap文章更改了我的代碼。 With 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
不能幫助我減少字節分配?