首页 > 学院 > 开发设计 > 正文

BitMap的getRowBytes和getByteCount()

2019-11-09 18:57:21
字体:
来源:转载
供稿:网友

getRowBytes():每一行所占的空间数。 getByteCount():BitMap的大小。

为什么在一般情况下不用bitmap.getByteCount()呢? 因为getByteCount要求的API版本较高,考虑到兼容性,一般使用上面的getRowBytes方法。


getRowBytes:Since API Level 1


getByteCount:Since API Level 12


源码

public final int getByteCount() { return getRowBytes() * getHeight(); }

所以,getByteCount()方法也就是实现了一下简单的封装。在开发中如果版本有要求可以使用下面代码,或者直接使用getRowBytes() * getHeight();

/** * 得到bitmap的大小 */ public static int getBitmapSize(Bitmap bitmap) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //API 19 return bitmap.getAllocationByteCount(); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {//API 12 return bitmap.getByteCount(); } // 在低版本中用一行的字节x高度 return bitmap.getRowBytes() * bitmap.getHeight(); //earlier version }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表