blogs.com/dasusu/p/9789389.html
(以上兩篇博客都很好。)
假設我們有壹張圖片的時候是600 * 800,圖片占用的空間假設是100KB。
圖片內存的大小和占用空間的大小有什麽關系?
占用空間的大小並不是圖片占用內存的大小,可能會被壹些初學者誤解。占用空間是磁盤上占用的空間,內存大小是加載到內存中所占用的內存大小。兩個單位是壹樣的,但本質不是壹個概念。
壹張圖片占用多少內存?
1.圖片占用內存的計算公式:圖片高度*圖片寬度*壹個像素占用的內存大小。
2.所以上圖占用的內存是:800 * 600 * 4字節= 1875 KB = 1.83 m?
圖片在res中放在不同的目錄下,為什麽最後圖片加載到內存時占用的大小不壹樣?
如果妳看壹下Bitmap.decodeResource()源代碼,妳會發現當系統加載res目錄下的資源圖片時,會根據圖片存放的不同目錄進行分辨率轉換,轉換規則如下:
新繪圖的高度=原始繪圖的高度* (dpi對應於設備的dpi/目錄)
新圖紙寬度=原圖紙寬度*(設備dpi/目錄對應的DPI)
目錄名和dpi的對應關系如下,不帶後綴的drawable對應160 dpi:
那麽,我們來看看序號2的實驗。根據上面的理論,我們來計算壹下這張圖的內存大小:
轉換後的分辨率:1080 *(240/160)* 452 *(240/160)= 1620 * 678。
同壹張圖片,在同壹臺設備上,如果圖片放在RES中不同的資源目錄下,會占用不同的內存空間。
同壹個圖片在res中放在同壹個資源目錄下,但是圖片占用的內存空間在不同的dpi設備中會有所不同。
圖片優化
所以,如果只從圖片本身考慮優化,只有兩個方向:
摘要
最後,總結壹點:
關於