最近在研究图片相关的一些问题;做了一些整理和分析
常规的去百度的时候,更多的说是 图片大小是: height*width*4b但是这个是对的吗?
这个边就对res文件下面的mimap做一个调研;
首先来一个列表数据整理吧
密度 | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi |
密度值 | 120 | 240 | 320 | 480 | 640 |
需要看一下这个表很重要的;这张图片的大小是1024*768 电脑里面显示大小114.30k
安卓版本(5.1,7.1,8.1) | 目录文件 | 占据内存大小(B) |
安卓版本(5.1,7.1,8.1) | mdpi | 28311552 |
安卓版本(5.1,7.1,8.1) | hdpi | 12582912 |
安卓版本(5.1,7.1,8.1) | xhdpi | 7077888 |
安卓版本(5.1,7.1,8.1) | xxhdpi | 3145728 |
安卓版本(5.1,7.1,8.1) | xxxhdpi | 1769472 |
那么先按height * width * 4b 为什么是*4b呢?因为系统默认是ARGB_8888 所以按4B来计算;
那么回到我们的问题 1024 * 768 * 4 (B) = 3145728 (B)
那么和上面任意一个对的上吗?对不上的;
那么为什么呢?
我们再去拿一个东西;dpi这个东西(对应手机,命令键是:adb shell wm density)获取到的dpi是480
那么 1024 * (480/120(mdpi))*768 * (480/120(mdpi))*4 = 28311552 B
其他的大家可以自行验证;
那么奇怪的是为什么我这边写的只有9.0以下的版本
因为在测试9.0以及9.0之后的版本,无论放在哪一个目录下面
得出的结论就是 1024 * 768 * 4 (B) = 3145728 (B)这个需要看一下源码才能知道,因为源码级别在C里面所以这个待研究
所以以上,我们可以大概进行估算我们的图片大小大概应该是多大;