0

これは、Android がビットマップを管理する方法に関する一般的な質問です。Android がスケーリングしなければならない不適切なサイズのビットマップではなく、正しいサイズのビットマップを ImageView に提供する方がメモリの観点から優れているかどうか疑問に思っています。実際の例として、ImageView を 1000 x 1000 と想定し、ビットマップを 1024 x 1024 (FitCentre) に設定すると、Android は画像をスケーリングする必要があります。元のイメージとスケーリングされたバージョンの両方を保持する必要があり、多かれ少なかれメモリ使用量が 2 倍になりますか? 別のシナリオで、1000 x 1000 のビットマップを 1000 x 1000 の ImageView に提示した場合、保持されるイメージは 1 つだけですか? 質問なので、ビットマップ、特に大きな画像を処理する最も効率的な方法を知っています。

4

1 に答える 1

0

Android は画像をスケーリングしますが、これは画像がメモリに読み込まれた後に発生し、悪名高いOutofMemoryError例外の発生を防ぐことはできません。

解決策は、画像をメモリにロードする前にスケーリングしてから使用することです。

Android のドキュメントでは、この問題を軽減する方法と、一般的にビットマップを効率的に表示する方法について詳しく説明しています: http://developer.android.com/training/displaying-bitmaps/index.html

于 2012-12-30T23:34:39.983 に答える