Webストリームからビットマップをデコードしようとしているときに、ビットマップのエクステントが許可されているメモリサイズを超えた場合に、アプリがクラッシュすることがあります。
これを克服するために、私はここで説明されている戦略を使用しています:
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
幅と高さを500x500の慎重なアプローチをcalculateInSampleSizeの入力として使用しているため、メモリの問題は発生しなくなりましたが、ダウンスケールされた画像の画質が悪いとお客様から苦情が寄せられています。
クラッシュしないビットマップエクステントを決定する明確な方法がないように思われるため、残念ながら、かなり低い値(ここでは500x500)で試してみる必要がありますが、具体的なケースでは1000x1000でも問題なく動作します。
calculateInSampleSizeの入力としてどのビットマップエクステントが最大エクステントであるかを確認する方法はありますか?これは、decodeByteArrayなどの後続の呼び出しでアプリをクラッシュさせませんか?
よろしく