2

Androidに画像をロードしたい

background = BitmapFactory.decodeResource(getResources(),R.drawable.hangmanbegin);    
background =  Bitmap.createScaledBitmap(background,screenx,screeny,false);

画像は800*1280ピクセルなので、正しければ約3MBのメモリスペースを使用する必要がありますか?しかし、私のヒープはそのフェーズで15MBから29MBに増加するので、ウィンドウやコンテキストがリークすることはありませんか?

これはどのように説明されますか?enあなたはそれについて何ができますか?

事前にThnx!

4

1 に答える 1

3

ビットマップは、特に写真のようなリッチな画像の場合、多くのメモリを消費します。たとえば、Galaxy Nexusのカメラは、最大2592x1936ピクセル(5メガピクセル)の写真を撮影します。使用されるビットマップ構成がARGB_8888(Android 2.3以降のデフォルト)の場合、このイメージをメモリにロードするには約19MBのメモリ(2592 * 1936 * 4バイト)が必要であり、一部のデバイスではアプリごとの制限をすぐに使い果たします。

http://developer.android.com/training/displaying-bitmaps/index.htmlから

クレジットとその下の修正にアプローチする方法https://stackoverflow.com/a/10127787/643500

于 2012-05-03T18:10:32.290 に答える