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
博客介绍了Bitmap的内存计算方法,如API12加入的getByteCount()代表存储Bitmap色素所需最少内存,API19起getAllocationByteCount()替代它。还提及Bitmap的长宽获取方法,以及不同像素存储格式(如ARGB_8888、Alpha_8等)所占字节数,说明了长度、宽度与getByteCount的关系。

3881

被折叠的 条评论
为什么被折叠?



