学习了android develop 培训中的一节 Displaying Bitmaps Efficiently
有中文教程http://hukai.me/android-training-course-in-chinese/graphics/displaying-bitmaps/index.html
学完了总结几个知识点
1、BitmapFactory.Options中的几个属性
boolean inJustDecodeBounds//设置此属性为true之后调用decode方法会返回一个null的Bitmap,用于获取图片的尺寸、类型等信息
int inSampleSize//设置此属性的值之后decode的图像会按比例缩小,例如inSampleSize=2,那么decode的Bitmap的长和宽均为原来的1/2,像素数就变为原来的1/4,它的值不管怎么设定,最后都会舍成2的幂次方
boolean inMutable //设定这个值为true之后就变成了可变的Bitmap,配合inBitmap属性使用,还不太清楚其他用法
Bitmap inBitmap //这个是用来重用Bitmap对象的,可以减少内存的分配和使用。4.4版本之后和4.4之前有区别,4.4之后只要字节数<=inBitmap的就行,4.4之前的要完全一致才行,具体见源码注释
2、加载Bitmap过程
不管是ListView还是GridView,每一个子View都是通过ImageView去显示图片内容
ImageView显示Bitmap的过程先从memory cache寻找,没有就再从disk cache寻找,还没有就异步加载需要的图片