概述
图片尺寸大小计算
当图片文件放在项目的drawable目录时候:
- drawable文件尺寸与pc中文件尺寸关系
目录 | 屏幕密度 |
---|---|
drawable-ldpi | 120dpi |
drawable-mdpi | 160dpi |
drawable-hdpi | 240dpi |
drawable-xhdpi | 320dpi |
drawable-xxhdpi | 480dpi |
- 获取手机的屏幕密度
C:UsersAdministrator>adb shell wm density
Physical density: 440
图片尺寸计算公式:
在手机中的width= (手机的屏幕密度/drawable目录设定的屏幕密度)* 图片在PC上面的宽度
在手机中的height= (手机的屏幕密度/drawable目录设定的屏幕密度)* 图片在PC上面的高度
举一个简单例子:
图片在pc上面的宽高为
demo.jpg存放在drawable-xhdpi目录,在代码中获取到的值
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.demo, options);
Log.d(TAG, "width: " + bitmap.getWidth() + " height : " + bitmap.getHeight());
Log.d(TAG, "drawable-xhdpi屏幕密度: " + options.inDensity);
Log.d(TAG, "内存大小 " + bitmap.getAllocationByteCount());
得到的结果是
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: width: 660 height : 880
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: drawable-xhdpi屏幕密度: 320
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: 内存大小 2323200
这里的 660 = 440/320*480
880 = 440/320*640
图片内存计算
先看图片的格式及其所占用的字节数,图片加载如果没有设置,默认是ARGB_8888
格式 | 字节数 |
---|---|
ALPHA_8 | 1个字节 |
RGB_565 | 2个字节 |
ARGB-4444 | 2个字节 |
ARGB_8888 | 4个字节 |
内存计算公式: 内存 = 图片宽 * 图片高 * 每个像素所暂用的字节数
举个例子
上面的图片内存: 2323200 = 660 * 880 * 4
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: width: 660 height : 880
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: drawable-xhdpi屏幕密度: 320
2019-07-30 17:59:54.938 2286-2286/? D/MainActivity: 内存大小 2323200
总结:
这里主要是从drawable中读取图片,获得的图片尺寸大小需要根据相应的手机密度以及drawable密度做相应的缩放,如果是从sdcard中读取,就没有缩放,直接使用图片宽*高*相应的字节数
最后
以上就是整齐大神为你收集整理的【android学习】APP图片内存计算的全部内容,希望文章能够帮你解决【android学习】APP图片内存计算所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复