/**
Bitmap优化:
1.从 drawable-某dpi 拿出来的图片到对应分辨率手机上显示图片的宽、高、尺寸大小是不变的。
如果drawable-某dpi 和手机分辨率不一致就需要按比例计算在当前分辨率手机上图片的宽、高、尺寸大小
例如:在drawable-mdpi 图片大小为 600*600、Config = ARGB.8888(占用4byte) 上对应的 dpi = 160,
在 hdpi 的手机上 hdpi = 240 那么宽、高、尺寸是:
如果在mdpi手机上页面显示的图片宽高依然是 600*600,尺寸 = 600*600*4
如果在hdpi手机上页面显示图片宽高是 600*240/160*600*240/160、尺寸 = 600*240/160*600*240/160*4
但是在asset目录下读出的图片尺寸大小宽高都是不变的。
2.对于使用的Bitmap可以使用 Bitamp.Options 的inSampleSize 采样压缩
3.在项目开发中如果涉及到频繁图片的切换,可以考虑使用Bitamp.Options的inBitmap,让新创建的Bitmap复用之前的Bitmap分配的内存
需要注意的是在4.4之前 两个bitmap的大小必须相同,4.4之后要求被复用的Bitmap的内存必须大于复用的Bitmap的内存
4.对于加载一些高清巨图可以采用分段加载,BitmapRegionDecoder
5.对于列表ListView/RecycleView 加载大量图片可采用三级缓存的方式,内存缓存少不了 LurCache 的算法进行缓存。
*/
网友评论