px,dp,dip,dpi,density,以及bitmap占用

2018-12-25  本文已影响0人  天宇666

一张实际宽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

上一篇 下一篇

猜你喜欢

热点阅读