px,dp,dip,dpi,density,以及bitmap占用
一张实际宽1024px,高1024px的图片,手机1080*1920, 5英寸,放在ldpi,hdpi,x-hdpi,xx-hdpi哪个文件夹最节省内存消耗?占用多少内存?为什么?(默认使用ARGB_8888 )
手机 dpi= 开庚号(1080*1080+1920*1920) ÷ 5 = 440
xx-hdpi:
缩放比例 scale=440/480 =0.917
图片占用内存大小:(1080*scale)*(1080*scale) * 4 ÷ 1024 ÷ 1024 = 3.75M
x-hdpi:
缩放比例 scale=440/360=1.22
图片占用内存大小:(1080*scale)*(1080*scale) * 4 ÷ 1024 ÷ 1024 = 5.95M
hdpi:
缩放比例 scale=440/240=1.83
图片占用内存大小:(1080*scale)*(1080*scale) * 4 ÷ 1024 ÷ 1024 = 14.9M
三种像素如下:
ARGB_4444 : 2bytes 每个像素占据2 个字节____A(Alpha)占4位的精度,R(Red)占4位的精度,G(Green)占4位的精度,B(Blue)占4位的精度,加起来一共是16位的精度,折合是2个字节,也就是一个像素占两个字节的内存,同时存储位图的透明度和颜色信息。不过由于该精度的位图质量较差,官方不推荐使用
ARGB_8888 : 4bytes 每个像素占据4 个字节____这个类型的跟ARGB_4444的原理是一样的,只是A,R,G,B各占8个位的精度,所以一个像素占4个字节的内存。由于该类型的位图质量较好,官方特别推荐使用。但是,如果一个480*800的位图设置了此类型,那个它占用的内存空间是:480*800*4/(1024*1024)=1.5M
RGB_565 : 2bytes 每个像素占据2 个字节____同理,R占5位精度,G占6位精度,B占5位精度,一共是16位精度,折合两个字节。这里注意的时,这个类型存储的只是颜色信息,没有透明度信息
----------------------------------------------------------------
px:像素,一个像素点
dp:物理单位,1dp= density*1 个像素
dip:同dp
dpi:每英寸显示的像素,即像素密度,1080*1920 5英寸,即:开庚号(480*480+800) ÷ 5 = 440
density:密度,相对于标准的 每英寸160像素的 倍数。440 ÷ 160 =2.75
----------------------------------------------------------------
资源类型
图片文件通常会分多个文件夹保存,这多个文件夹的后缀名其实表示的是不同的屏幕密度。
以m为基准,屏幕密度(dots per inch)基准和需要图像资源的大小比例如下
l: low density (120dpi) 0.75
m: medium density (160dpi) 1.0 baseline
h: high density (240dpi) 1.5
x: extra-high density (320dpi) 2.0
xx: extra-extra-high density (480dpi) 3.0
xxx: 4.0
参考:
https://blog.csdn.net/wolfking0608/article/details/78880491