1. ホーム
  2. android

デコード後のビットマップバイトサイズ?

2023-10-28 08:15:03

質問

ビットマップのバイトサイズ (BitmapFactory でデコードした後) を決定または計算するにはどうすればよいですか。 私は、私のアプリでメモリキャッシュ/管理をしているので、それがどのくらいのメモリ領域を占有するかを知る必要があります。(これらはjpg/pngファイルであるため、ファイルサイズは十分ではありません。)

どんな解決策にも感謝します!

更新:getRowBytes * getHeightでうまくいくかもしれません。誰かが反対してくるまで、この方法で実装してみます。

どのように解決するのですか?

getRowBytes() * getHeight() は、私には正常に動作しているように見えます。

私の2年前の答えの更新。 API レベル 12 以降、Bitmap はバイト サイズを問い合わせる直接的な方法を備えています。 http://developer.android.com/reference/android/graphics/Bitmap.html#getByteCount%28%29

----サンプルコード

    @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
    protected int sizeOf(Bitmap data) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1) {
            return data.getRowBytes() * data.getHeight();
        } else {
            return data.getByteCount();
        }
    }