他の多くの人と同じように、私も厄介な VM 予算の問題を抱えています。私はSDカードからファイルを取得しています.
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
問題は、onCreate メソッドを呼び出すたびにビットマップを取得することです。そのため、電話を回したり、アクティビティを数回開始したりした後、クラッシュします。これを回避する唯一の方法は次のとおりyourBitmap.recycle()
ですが、リサイクルされたビットマップをキャッチすることはできません。
通常は VM の予算でクラッシュした後でも、ビットマップを表示できる式が必要です。ビットマップをドローアブルとして表示しているため、従来の unbindDrawables ソロションは機能しません。ビットマップをほぼゼロにするエクスプレッション、またはリサイクルして同じサイズの新しいビットマップを表示するエクスプレッションが必要です。