2

drawable-xhdpi には 15 個の画像があり、それぞれが 800x800 です。drawable-hdpi には同じ画像がありますが、600x600 です。hdpi 解像度のデバイスでアプリケーションを実行すると、ヒープ サイズは約 3 MB になりますが、デバイスで実行するとxhdpi 解像度では、ヒープ サイズが 40 MB を超えており、メモリ不足になりますか? なにが問題ですか?画像が大きすぎますか?

ヒープサイズ: ldpi: ~3mb mdpi: ~3mb hdpi: ~3mb xhdpi: ~40mb

次の方法で画像をロードします。

 b1 = BitmapFactory.decodeResource(getResources(), R.drawable.image);
 imageview.setImageBitmap(b1);

then in OnBackPressed() b1.recycle()
4

1 に答える 1

5

これは以前に何度も尋ねられました... ロードされたときにビットマップに使用される実際のメモリはH x W x 4. 800 * 800 * 4 * 15 = 38 MB。15 個の画像すべてを同時にロードしないでください。それらはほぼ画面のサイズであるため、この場合、リサンプリングは意味がありません。それらすべてを同時にロードしないように回避する方法を理解する必要があります。

于 2012-10-22T21:12:37.187 に答える