2016-04-14 3 views
0

Bitmapを設定する方が良い方法は、xmlで背景として設定するか、またはプログラムで設定するかです。ビットマップをXMLで設定するか、Androidでプログラムで設定すると良いでしょうか?

私はOut of Memoryの問題を抱えており、時折バイナリxmlエラーを出しています。最大サイズ500kb(xxhdpi)の背景イメージを使用しています。だから私は、背景としてビットマップを設定するためのより良い方法は何ですか?

ビットマップをxmlに設定するか、Javaクラスでプログラムで設定します。

誰もそれについて話していますか?前もって感謝します。

+0

XMLが優れています。プログラム的に遅いです –

+2

'私は500kbの背景画像を使用しました。' <=サイズは重要ではないかという問題は – Selvin

+0

です。画像が重い場合はメモリ不足例外が発生しませんか? –

答えて

0

バックグラウンドとしてxmlに設定するか、プログラムで設定すると、メモリ占有に違いはありません。 私のプロジェクトでは、Glideインターネットピクチャとローカルピクチャを管理しています。 Glideなどの画像フレームは、メモリ不足の問題に役立ちます。

多くの詳細があります。

1. DecodeFormatを「PREFER_RGB_565」に設定します。

2. ViewTargetで高さを指定した投影セットターゲット画像。

3.許可されている場合は、png描画可能ではなくjpg描画可能を使用します。

ご不明な点がありましたら、ご質問ください。

+0

グライドが画像を管理していると言ってもらいたいのですが、画像がXML上にあるとメモリ不足が発生している場合は、そのために何ができるのですか? ありがとうございます。 –

+0

Glideでローカルイメージを管理することもできます。Glide.with(this).load()関数にフォーカスすると、 'R.drawable.a'などのローカル描画可能なxmlを設定できます。そうすれば、あなたのアプリ(ローカルとネットの両方)のすべてのドロウアブルをLruキャッシュで管理することができます。メモリが不足すると、グライドは古いドロアブルをリサイクルしてOOMを回避できます。 – banking

0

メモリが不足しないようにプログラムでビットマップをBitmapFactory.Optionsに設定する方が良いと思います。

そして、xmlのOOMを直接処理する良い方法はないかもしれません。

関連する問題