2012-06-21 53 views

回答

6

它最好只使用支持庫:

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

Wery有用:-) –

19

正如dmon所述,根據this question的意見,bitmap.getByteCount()只是一種方便的方法,它返回bitmap.getRowBytes() * bitmap.getHeight()。所以,你可以使用自定義的方法,而不是:

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

像評論者在回答中說,你不需要if-else塊。只需使用其他位。這樣你就不需要AndroidVersion。 – dmon

+0

你說得對,我讀得太快,我編輯了我的答案。 – Dalmas

相關問題