3

There is a useful method bitmap.getByteCount() since API level 12. But how to get same value in API 11?

4

2 回答 2

19

正如 dmon 所提到的,根据这个问题 bitmap.getByteCount()的评论,这只是一个方便的方法,它返回bitmap.getRowBytes() * bitmap.getHeight(). 因此,您可以改用自定义方法:

public static long getSizeInBytes(Bitmap bitmap) {
    return bitmap.getRowBytes() * bitmap.getHeight();
}
于 2012-06-21T13:46:32.460 回答
7

最好只使用支持库:

int bitmapByteCount=BitmapCompat.getAllocationByteCount(bitmap)

或者,如果您想自己做:

public static int getBitmapByteCount(Bitmap bitmap) {
    if (VERSION.SDK_INT < VERSION_CODES.HONEYCOMB_MR1)
        return bitmap.getRowBytes() * bitmap.getHeight();
    if (VERSION.SDK_INT < VERSION_CODES.KITKAT)
        return bitmap.getByteCount();
    return bitmap.getAllocationByteCount();
}
于 2015-07-29T07:46:20.957 回答