1

サイズがわずか 50 kb の 300 x 355 の画像があります。以下のコードでデコードしようとしています。

Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId)
    .copy(Bitmap.Config.ARGB_8888, true);

logcat によると、10674000 バイトが割り当てられようとしています。なぜそんなに多いのですか?画像はわずか 50 kb です。

4

1 に答える 1

6

300 x 355 = 106500 ピクセル。

ピクセルあたり 4 バイト、つまり 426KB であり、LogCat によって報告される割り当てに近くなります。

コード内の.copy()コマンドにより、メモリが 2 倍の 852KB になり、報告された 10.6MB にわずかに近づきます。

あなたが報告した 50KB という数値は、おそらく .jpg または .png ファイルの圧縮サイズであり、BitmapAndroid で使用されている圧縮されていないサイズではありません。

于 2013-03-29T21:43:20.800 に答える