一、Bitmap内存
1.Bitmap内存的计算方式
1.decodeResource
从drawable、mipmap这种对应的文件目录中加载图片
Bitamp 占用内存大小 = 宽度像素 x (inTargetDensity / inDensity) x 高度像素 x (inTargetDensity / inDensity)x 一个像素所占的内存
inTargetDensity :设备的dpi
inDensity :当前文件所在drawable文件夹目录 对应的dpi
一个像素所占的内存,有以下几种像素格式:
ALPHA_8 1byte
ARGB_4444 2byte
ARGB_8888 4byte
RGB_565 2byte
2.从本地磁盘 、asset、等方式中加载图片
Bitamp 占用内存大小 = 宽度像素 x 高度像素 x 一个像素所占的内存
注意:
当使用第三方库时,则不能用这些公式来计算,因为三方库内部会重新对内存进行优化。
eg:
fresco:不管图片来源是哪里,即使是 res,图片占用的内存大小仍旧以原图的分辨率计算。
Glide:如果有设置图片显示的控件,那么会自动按照控件的大小,降低图片的分辨