真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在Android應(yīng)用中利用Bitmap對(duì)圖片進(jìn)行優(yōu)化-創(chuàng)新互聯(lián)

這篇文章給大家介紹怎么在Android應(yīng)用中利用Bitmap對(duì)圖片進(jìn)行優(yōu)化,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,先為新邱等服務(wù)建站,新邱等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為新邱企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

前言

在Android開(kāi)發(fā)過(guò)程中,Bitmap往往會(huì)給開(kāi)發(fā)者帶來(lái)一些困擾,因?yàn)閷?duì)Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError - 內(nèi)存溢出),本篇博客,我們將一起探討B(tài)itmap的性能優(yōu)化。

為什么Bitmap會(huì)導(dǎo)致OOM?

1.每個(gè)機(jī)型在編譯ROM時(shí)都設(shè)置了一個(gè)應(yīng)用堆內(nèi)存VM值上限dalvik.vm.heapgrowthlimit,用來(lái)限定每個(gè)應(yīng)用可用的大內(nèi)存,超出這個(gè)大值將會(huì)報(bào)OOM。這個(gè)閥值,一般根據(jù)手機(jī)屏幕dpi大小遞增,dpi越小的手機(jī),每個(gè)應(yīng)用可用大內(nèi)存就越低。所以當(dāng)加載圖片的數(shù)量很多時(shí),就很容易超過(guò)這個(gè)閥值,造成OOM。

2.圖片分辨率越高,消耗的內(nèi)存越大,當(dāng)加載高分辨率圖片的時(shí)候,將會(huì)非常占用內(nèi)存,一旦處理不當(dāng)就會(huì)OOM。例如,一張分辨率為:1920x1080的圖片。如果Bitmap使用 ARGB_8888 32位來(lái)平鋪顯示的話,占用的內(nèi)存是1920x1080x4個(gè)字節(jié),占用將近8M內(nèi)存,可想而知,如果不對(duì)圖片進(jìn)行處理的話,就會(huì)OOM。

3.在使用ListView, GridView等這些大量加載view的組件時(shí),如果沒(méi)有合理的處理緩存,大量加載Bitmap的時(shí)候,也將容易引發(fā)OOM

Bitmap基礎(chǔ)知識(shí)

一張圖片Bitmap所占用的內(nèi)存 = 圖片長(zhǎng)度 x 圖片寬度 x 一個(gè)像素點(diǎn)占用的字節(jié)數(shù)

Bitmap.Config,正是指定單位像素占用的字節(jié)數(shù)的重要參數(shù)。

怎么在Android應(yīng)用中利用Bitmap對(duì)圖片進(jìn)行優(yōu)化

其中,A代表透明度;R代表紅色;G代表綠色;B代表藍(lán)色。

ALPHA_8

表示8位Alpha位圖,即A=8,一個(gè)像素點(diǎn)占用1個(gè)字節(jié),它沒(méi)有顏色,只有透明度

ARGB_4444

表示16位ARGB位圖,即A=4,R=4,G=4,B=4,一個(gè)像素點(diǎn)占4+4+4+4=16位,2個(gè)字節(jié)

ARGB_8888

表示32位ARGB位圖,即A=8,R=8,G=8,B=8,一個(gè)像素點(diǎn)占8+8+8+8=32位,4個(gè)字節(jié)

RGB_565

表示16位RGB位圖,即R=5,G=6,B=5,它沒(méi)有透明度,一個(gè)像素點(diǎn)占5+6+5=16位,2個(gè)字節(jié)

一張圖片Bitmap所占用的內(nèi)存 = 圖片長(zhǎng)度 x 圖片寬度 x 一個(gè)像素點(diǎn)占用的字節(jié)數(shù)

根據(jù)以上的算法,可以計(jì)算出圖片占用的內(nèi)存,以100*100像素的圖片為例

怎么在Android應(yīng)用中利用Bitmap對(duì)圖片進(jìn)行優(yōu)化

BitmapFactory解析Bitmap的原理

BitmapFactory提供的解析Bitmap的靜態(tài)工廠方法有以下五種:

Bitmap decodeFile(...)
Bitmap decodeResource(...)
Bitmap decodeByteArray(...)
Bitmap decodeStream(...)
Bitmap decodeFileDescriptor(...)

網(wǎng)站欄目:怎么在Android應(yīng)用中利用Bitmap對(duì)圖片進(jìn)行優(yōu)化-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/hjoic.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部