Android -- 使用inBitmap要注意的地方

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的,若是前面的bitmap8888,那麼就不能支持4444565格式的bitmap了,不過能夠經過建立一個包含多種典型可重用bitmap的對象池,這樣後續的bitmap建立都可以找到合適的「模板」去進行重用。對象

 

DisplayingBitmaps圖片

Managing Bitmap Memory 上的demoDisplayingBitmaps.zip,代碼也有用到inBitmap,可是DisplayingBitmaps功能仍是很弱,由於遇到過不一樣的ImageView設置不一樣ScaleType,而後使用同一張圖片會形成相互影響,設置圖片圓角也是,因此這也是使用inBitmap要注意的地方。ip

 

使用內存

使用此方法須要inMutable=trueinSampleSize=1開發

 

測試

開發完APP最好用一些APP在線自動化測試工具進行一下測試:www.ineice.com

相關文章
相關標籤/搜索