溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

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

發(fā)布時(shí)間:2020-06-21 13:29:03 來(lái)源:網(wǎng)絡(luò) 閱讀:538 作者:天涯花生 欄目:移動(dòng)開(kāi)發(fā)

SDK版本

需要注意的是inBitmap只能在3.0以后使用。2.3上,bitmap的數(shù)據(jù)是存儲(chǔ)在native的內(nèi)存區(qū)域,并不是在Dalvik的內(nèi)存堆上。

 

android3.0開(kāi)始,系統(tǒng)在BitmapFactory.Options里引入了inBitmap機(jī)制來(lái)配合緩存機(jī)制。如果在載入圖片時(shí)傳入了inBitmap那么載入的圖片就是inBitmap里的值。這樣可以統(tǒng)一有緩存和無(wú)緩存的載入方式。

 

使用inBitmap,在4.4之前,只能重用相同大小的bitmap的內(nèi)存區(qū)域,而4.4之后你可以重用任何bitmap的內(nèi)存區(qū)域,只要這塊內(nèi)存比將要分配內(nèi)存的bitmap大就可以。例如給inBitmap賦值的圖片大小為100-100,那么新申請(qǐng)的bitmap必須也為100-100才能夠被重用。從SDK 19開(kāi)始,新申請(qǐng)的bitmap大小必須小于或者等于已經(jīng)賦值過(guò)的bitmap大小。

 

解碼

新申請(qǐng)的bitmap與舊的bitmap必須有相同的解碼格式,例如大家都是8888的,如果前面的bitmap8888,那么就不能支持4444565格式的bitmap了,不過(guò)可以通過(guò)創(chuàng)建一個(gè)包含多種典型可重用bitmap的對(duì)象池,這樣后續(xù)的bitmap創(chuàng)建都能夠找到合適的“模板”去進(jìn)行重用。

 

DisplayingBitmaps

Managing Bitmap Memory 上的demoDisplayingBitmaps.zip,代碼也有用到inBitmap,但是DisplayingBitmaps功能還是很弱,因?yàn)橛龅竭^(guò)不同的ImageView設(shè)置不同ScaleType,然后使用同一張圖片會(huì)造成相互影響,設(shè)置圖片圓角也是,所以這也是使用inBitmap要注意的地方。

 

使用

使用此方法需要inMutable=true,inSampleSize=1

 

測(cè)試

開(kāi)發(fā)完APP最好用一些APP在線(xiàn)自動(dòng)化測(cè)試工具進(jìn)行一下測(cè)試:www.ineice.com


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI