SDK版本android
须要注意的是inBitmap只能在3.0之后使用。2.3上,bitmap的数据是存储在native的内存区域,并非在Dalvik的内存堆上。缓存
在android3.0开始,系统在BitmapFactory.Options里引入了inBitmap机制来配合缓存机制。若是在载入图片时传入了inBitmap那么载入的图片就是inBitmap里的值。这样能够统一有缓存和无缓存的载入方式。工具
使用inBitmap,在4.4以前,只能重用相同大小的bitmap的内存区域,而4.4以后你能够重用任何bitmap的内存区域,只要这块内存比将要分配内存的bitmap大就能够。例如给inBitmap赋值的图片大小为100-100,那么新申请的bitmap必须也为100-100才可以被重用。从SDK 19开始,新申请的bitmap大小必须小于或者等于已经赋值过的bitmap大小。测试
解码spa
新申请的bitmap与旧的bitmap必须有相同的解码格式,例如你们都是8888的,若是前面的bitmap是8888,那么就不能支持4444与565格式的bitmap了,不过能够经过建立一个包含多种典型可重用bitmap的对象池,这样后续的bitmap建立都可以找到合适的“模板”去进行重用。对象
DisplayingBitmaps图片
Managing Bitmap Memory 上的demo的DisplayingBitmaps.zip,代码也有用到inBitmap,可是DisplayingBitmaps功能仍是很弱,由于遇到过不一样的ImageView设置不一样ScaleType,而后使用同一张图片会形成相互影响,设置图片圆角也是,因此这也是使用inBitmap要注意的地方。ip
使用内存
使用此方法须要inMutable=true,inSampleSize=1开发
测试
开发完APP最好用一些APP在线自动化测试工具进行一下测试:www.ineice.com