11

OutOfMemoryError 例外が発生する理由はわかっていますが、バイト配列をビットマップに変換する最善の方法があります。以下のコードを使用しましたが、大きなバイトがアプリを強制的に閉じて OutOfMemoryError 例外を発生させます。

そして、私はAPIを持っています。それは、バイト配列を返すだけです。

Bitmap bmp = BitmapFactory.decodeByteArray(bytearray, 0, bytearray.length);
4

4 に答える 4

9
Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapbytes , 0, bitmapbytes .length);

戻り値 デコードされたビットマップ、または画像をデコードできなかった場合は null。

于 2015-04-15T12:16:49.480 に答える
3

これが私にとってうまくいったことです:ちなみに写真は画像の文字列です。

byte[] imgbytes = Base64.decode(photo, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(imgbytes, 0,
imgbytes.length);
imageupload.setImageBitmap(bitmap);
于 2012-08-09T08:22:27.567 に答える
0

おそらく、次の方法を使用する必要があります ( DOC、同じ方法ですが、 options パラメーターを使用します)。

public static Bitmap decodeByteArray (byte[] data, int offset, int length, BitmapFactory.Options opts)

optionsパラメータをいじってみましょう。これがあなたを助けることを願っています=)

于 2012-07-24T11:06:26.470 に答える
0

AQuery ライブラリを使用して画像を読み込むと、サイズ変更、表示などに役立ち、最も一般的なメモリ リークを回避できます。このツールは次の場所にあります: http://code.google.com/p/android-query/

于 2012-08-09T08:16:14.657 に答える