如何在API级别11中获取位图字节数?

3

自API 12以来,有一个有用的方法bitmap.getByteCount()。但是在API 11中如何获得相同的值?

2个回答

19

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

public static long getSizeInBytes(Bitmap bitmap) {
    return bitmap.getRowBytes() * bitmap.getHeight();
}

1
就像评论者在那个答案中所说的那样,你不需要if-else块。只需使用else部分即可。这样你就不需要AndroidVersion了。 - dmon

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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接