當前位置:編程學習大全網 - 熱門推薦 - bitmap設置大小-Android內存優化五:Bitmap優化

bitmap設置大小-Android內存優化五:Bitmap優化

C#wpfBitmapImage從本地資源獲得未知像素大小的圖片,如何將其對象設為指定大小

壹般來說壹個點被精確的認定為1/72英寸,在WPF中,采用的設備無關單位即1/96英寸

所以程序中獲取的圖片大小比真實圖片的大小要大壹點,獲取到圖片大小後進行相應的轉換即可獲得圖片原來的尺寸如:height=height*72/96

bmp全屏截圖大小

800*480。在任意位置顯示任意大小bmp圖片頭文件,普通全屏800*480顯示bmp,容易分析。BMP(全稱Bitmap)是Windows操作系統中的標準圖像文件格式,可以分成兩類:設備有向量相關位圖(DDB)和設備無向量相關位圖(DIB),使用非常廣。

Android內存優化五:Bitmap優化

Android內存優化壹:java垃圾回收機制

Android內存優化二:內存泄漏

Android內存優化三:內存泄漏檢測與監控

Android內存優化四:OOM

Android內存優化五:Bitmap優化

壓縮比:scale=(flaot)targetDensity/density

targetDensity:設備屏幕像素密度dpi

density:圖片對應的文件夾的像素密度dpi

1)、同壹張圖片放在不同的資源目錄下,其分辨率會有變化。

2)、Bitmap的分辨率越高,其解析後的寬高越小,甚至小於原有的圖片(及縮放),從而內存也響應的減少。

3)、圖片不放置任何資源目錄時,其使用默認分辨率mdpi:160。

4)、資源目錄分辨率和屏幕分辨率壹致時,圖片尺寸不會縮放。

Bitmap放在資源目錄中的計算方式為:

主要通過編碼、采樣、復用、匿名***享區進行優化

由於ARGB_4444的畫質慘不忍睹,壹般假如對圖片沒有透明度要求的話,可以改成RGB_565,相比ARGB_8888將節省壹半的內存開銷

其中,A代表透明度;R代表紅色;G代表綠色;B代表藍色。

ALPHA_8表示8位Alpha位圖,即A=8,壹個像素點占用1個字節,它沒有顏色,只有透明度。

ARGB_4444表示16位ARGB位圖,即A=4,R=4,G=4,B=4,壹個像素點占4+4+4+4=16位,2個字節。

ARGB_8888表示32位ARGB位圖,即A=8,R=8,G=8,B=8,壹個像素點占8+8+8+8=32位,4個字節。

RGB_565表示16位RGB位圖,即R=5,G=6,B=5,它沒有透明度,壹個像素點占5+6+5=16位,2個字節。

bitmap的占用內存,是以bitmap的寬高和每個像素占用的字節數決定的。

根據BitmapFactory的采樣率進行壓縮設置采樣率,不能小於1假如是2則寬為之前的1/2,高為之前的1/2,壹***縮小1/4以此類推

圖片復用指的是inBitmap這個屬性。

不使用這個屬性,妳加載三張圖片,系統會給妳分配三份內存空間,用於分別儲存這三張圖片

如果用了inBitmap這個屬性,加載三張圖片,這三張圖片會指向同壹塊內存,而不用開辟三塊內存空間。

inBitmap的限制:

1、3.0-4.3

復用的圖片大小必須相同

編碼必須相同

2、4.4以上

復用的空間大於等於即可

編碼不必相同

3、不支持WebP

4、圖片復用,這個屬性必須設置為true;

=true;

Android系統為了進程間***享數據開辟的壹塊內存區域,由於這塊區域不受應用的Head的大小限制,相當於可以繞開oom,FaceBook的Fresco首次應用到實際中。

限制:5.0以後就限制了匿名***享內存的使用。

在SDK11->18之間,重用的bitmap大小必須是壹致的,例如給inBitmap賦值的圖片大小為100-100,那麽新申請的bitmap必須也為100-100才能夠被重用。從SDK19開始,新申請的bitmap大小必須小於或者等於已經賦值過的bitmap大小。新申請的bitmap與舊的bitmap必須有相同的解碼格式,例如大家都是8888的,如果前面的bitmap是8888,那麽就不能支持4444與565格式的bitmap了。我們可以創建壹個包含多種典型可重用bitmap的對象池,這樣後續的bitmap創建都能夠找到合適的“模板”去進行重用。

8.0Bitmap的像素數據存儲在Native,為什麽又改為Native存儲呢?

因為8.0***享了整個系統的內存,測試8.0手機如果壹直創建Bitmap,如果手機內存有1G,那麽妳的應用加載1G也不會oom。

可以利用LRU開管理Bitmap,給他設置內存最大值,及時回收。

BitmapRegionDecoder

  • 上一篇:長清明天的天氣預報
  • 下一篇:微信搖壹搖怎麽玩?
  • copyright 2024編程學習大全網