BitMap的getRowBytes和getByteCount()

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  
 }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值