不同drawable目录下同一图片生成Bitmap所占用内存大小区别

图片大小计算方式

一个Bitmap位图占用内存 = 长 * 宽 * 单位像素占用的字节数

上述条件中,可变的量只有长和宽。

不同drawable下bitmap的长和宽

图片在不同屏幕密度下会缩放

缩放大小 = 设备屏幕密度 / drawable目录所代表屏幕密度

drawable目录所代表屏幕密度

drawable 屏幕密度
ldpi 120
mdpi 160
hdpi 240
xhdpi 320
xxhdpi 480
  • 屏幕密度:单位英寸面积上的像素点数
  • 160为baseline,其他均以此为基准,在此设备上,1dp = 1px

420density屏幕下,2880*1800图片大小

图片所在路径 屏幕密度 byteCount width height 缩放
mdpi 160 142884000 7560 4725 420 /160 = 2.625
xxhdpi 480 15876000 2520 1575 420/480 = 0.875

单位像素占用的字节数

Bitmap.Config ARGB透明度红绿蓝 位数 备注 字节数
ARGB_4444 A=4,R=4,G=4,B=4 一个像素点占4+4+4+4=16位 图片质量太差 2
ARGB_8888 A=8,R=8,G=8,B=8 一个像素点占8+8+8+8=32位 默认使用 4
RGB_565 A=0,R=5,G=6,B=5 一个像素点占5+6+5=16位 没有透明度,颜色不鲜艳 2
ALPHA_8 A=8,R=0,G=0,B=0 一个像素点占8位 1

你可能感兴趣的:(不同drawable目录下同一图片生成Bitmap所占用内存大小区别)