0

Androidアプリケーションを作成していますが、「メモリ不足の例外」というレポートで問題が発生しました。ネットで何度も検索したところ、android:backgroundがメモリに背景画像を読み込んでいることがわかりました。

したがって、XMLファイル内のすべての「android:background」宣言を削除し、次のように置き換えます。

    background = new BitmapDrawable(getResources(),ImageFactoring.decodeSampledBitmapFromResource(getResources(), R.drawable.catalogue_button_poeles_bois, mMaxButton_Cheminees.getLayoutParams().width, mMaxButton_Cheminees.getLayoutParams().height));
    mMaxButton_Cheminees.setBackgroundDrawable(background);

その前に、「setBackgroundDrawable」が画像をメモリに読み込んでいるかどうかを知りたいですか?

4

1 に答える 1

1

もちろん、そうです。ディスプレイに表示されるのは、メモリに保存されているものだけです。背景を設定すると、すぐに読み込まれます。xmlからインフレーションしているとき、または明示的に設定しているとき。必要以上に大きい画像をリソースとして使用しないでください。また、可能な限り大きなHQ画像を避けるようにしてください。

于 2013-03-19T10:54:00.810 に答える