1. getByteCount()
getByteCount()方法是在API12加入的,代表存储Bitmap的色素需要的最少内存。API19开始getAllocationByteCount()方法代替了getByteCount()
2. getWidth() & getHeight()
Bitmap的宽度和长度
例子:
一个Bitmap,它长宽分别是1346 和1079,getByteCount得到的是5809336
长度*宽度 != getByteCount?怎么回事?
原来,一个像素所占的字节数并不一定是1,也可能是2,3,4
一个像素占用多大内存?Bitmap.Config用来描述图片的像素是怎么被存储的?
ARGB_8888: 每个像素4字节. 共32位,默认设置。
Alpha_8: 只保存透明度,共8位,1字节。
ARGB_4444: 共16位,2字节。
RGB_565:共16位,2字节,只存储RGB值。
因此,长度*宽度*4=getByteCount