android开发中bitmap图片占用内存计算方法
2016-03-30 21:14
369 查看
在进行android开发(http://www.maiziedu.com/course/android/)时,我们需要对图片占用内存进行计算。图片(bitmap)占用的内存主要和以下几个因数有关:图片长度、图片宽度、单位像素占用的字节数。那么如何计算bitmap占用内存呢,计算方法、公式如下:
Android对各分辨率的定义
当图片以格式ARGB_8888存储时的计算方式
占用内存=图片长*图片宽*4字节
图片长 = 图片原始长 (设备DPI/文件夹DPI)
图片宽 = 图片原始宽(设备DPI/文件夹DPI)
举例验证如下:
图片大小 200 * 320,设备为红米dpi为320,属于xhdpi设备。
验证一 图片放在hdpi,下面为代码输出结果:
DD/MainActivity(13014): dpi: 320 bitmap ByteCount: 456036
图片长 = (320 / 240) * 200 = 266.67
图片宽 = (320 / 240 )* 320 = 426.67
占用内存 = 266.67 * 426.67 * 4 = 455116 与 实际值大致相同
验证二:图片放xxhdpi下,下面为代码输出结果:
D/MainActivity(13014): dpi: 320 bitmap ByteCount: 113316
图片长 = (320 / 480 ) * 200 = 133.33
图片宽 = (320 / 480 ) * 320 = 213.33
占用内存 = 133.33 * 213.33 * 4 = 113774 与 实际值大致相同。
Android对各分辨率的定义
当图片以格式ARGB_8888存储时的计算方式
占用内存=图片长*图片宽*4字节
图片长 = 图片原始长 (设备DPI/文件夹DPI)
图片宽 = 图片原始宽(设备DPI/文件夹DPI)
举例验证如下:
图片大小 200 * 320,设备为红米dpi为320,属于xhdpi设备。
验证一 图片放在hdpi,下面为代码输出结果:
DD/MainActivity(13014): dpi: 320 bitmap ByteCount: 456036
图片长 = (320 / 240) * 200 = 266.67
图片宽 = (320 / 240 )* 320 = 426.67
占用内存 = 266.67 * 426.67 * 4 = 455116 与 实际值大致相同
验证二:图片放xxhdpi下,下面为代码输出结果:
D/MainActivity(13014): dpi: 320 bitmap ByteCount: 113316
图片长 = (320 / 480 ) * 200 = 133.33
图片宽 = (320 / 480 ) * 320 = 213.33
占用内存 = 133.33 * 213.33 * 4 = 113774 与 实际值大致相同。
相关文章推荐
- 关于对Android Activity 生命周期的7个方法的理解
- Android ViewPager使用记录
- Android EditText取消焦点并关闭输入法【从新浪云搬运】
- android优化(json工具,message新建/传递,avtivity深入学习视频)
- android实现tab切换效果
- ubuntu 14.04系统 Android 4.0.1 源码编译过程
- Android学习--AsyncTask工具
- 爱加密Android APk 原理解析
- Android实现“打招呼”
- (4.6.8)Android性能调优
- (4.6.7)Android性能调优工具TraceView介绍
- Android Studio下如何配置AIDL文件并生成java文件
- (4.6.4)性能优化之Java(Android)代码优化
- android动画详解六 XML中定义动画
- android studio 初体验
- android 使用LinearGradient进行字体渐变的效果
- 关于安卓异步加载Asynctask的学习笔记
- android手机安全性测试手段
- android中锁屏后代码不运行的问题
- android配置selector需要注意的点