您好,登錄后才能下訂單哦!
SDK版本
需要注意的是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大小。
解碼
新申請的bitmap與舊的bitmap必須有相同的解碼格式,例如大家都是8888的,如果前面的bitmap是8888,那么就不能支持4444與565格式的bitmap了,不過可以通過創建一個包含多種典型可重用bitmap的對象池,這樣后續的bitmap創建都能夠找到合適的“模板”去進行重用。
DisplayingBitmaps
Managing Bitmap Memory 上的demo的DisplayingBitmaps.zip,代碼也有用到inBitmap,但是DisplayingBitmaps功能還是很弱,因為遇到過不同的ImageView設置不同ScaleType,然后使用同一張圖片會造成相互影響,設置圖片圓角也是,所以這也是使用inBitmap要注意的地方。
使用
使用此方法需要inMutable=true,inSampleSize=1
測試
開發完APP最好用一些APP在線自動化測試工具進行一下測試:www.ineice.com
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。