Android 计算Bitmap大小 getRowBytes和getByteCount()
2015-07-28 13:44
701 查看
今天使用LruCache写demo的时候,要获取Bitmap的大小
于是就用到了
return bitmap.getRowBytes() * bitmap.getHeight();// 获取大小并返回
//Bitmap所占用的内存空间数等于Bitmap的每一行所占用的空间数乘以Bitmap的行数
为什么不用bitmap.getByteCount()呢?
因为getByteCount要求的API版本较高,考虑到兼容性使用上面的方法
1、getRowBytes:Since API Level 1
2、getByteCount:Since API Level 12
查看Bitmap源码
所以API 12 以后
getByteCount() = getRowBytes() * getHeight();
在计算Bitmap所占空间时上面的方法或许有帮助。
补充:
于是就用到了
return bitmap.getRowBytes() * bitmap.getHeight();// 获取大小并返回
//Bitmap所占用的内存空间数等于Bitmap的每一行所占用的空间数乘以Bitmap的行数
为什么不用bitmap.getByteCount()呢?
因为getByteCount要求的API版本较高,考虑到兼容性使用上面的方法
1、getRowBytes:Since API Level 1
2、getByteCount:Since API Level 12
查看Bitmap源码
public final int getByteCount() { return getRowBytes() * getHeight(); }
所以API 12 以后
getByteCount() = getRowBytes() * getHeight();
在计算Bitmap所占空间时上面的方法或许有帮助。
补充:
/** * 得到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 }
相关文章推荐
- Android studio运行加速教程
- android 源码调试中一系列默认值修改
- Android(java)学习笔记135:Android中assets文件夹资源的访问
- marmalade android 5.0 JNI 调用失败的解决方案
- AndroidStudio-------IdeaVim插件
- Android播放HLS协议的流媒体
- Android 软引用
- AndroidMaterialDesign动画之RippleDrawable
- Android适配
- Android开源框架Universal-Image-Loader详解
- Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
- Androidstudio 安装codota插件
- Android 界面滑动卡顿分析与解决方案(入门)
- Android动画进阶—使用开源动画库nineoldandroids——1
- 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android Studio 常用插件
- 加速Android Studio/Gradle构建
- android数据存储中的SQLite
- 【Android基础】AsyncTask基础
- AndroidStudio初学者