圖片記憶體佔用計算方法
一張圖片佔用的記憶體由以下因素決定:
- 圖片中的像素點個數
- 每單位像素點佔用字節數
所以,一張圖片佔用的記憶體值為:
圖片長度 * 圖片寬度 * 單位像素點字節數
每單位像素點佔用字節數(byte):
ALPHA_8 | 1 |
ARGB_4444 | 2 |
ARGB_8888 | 4 |
RGB_565 | 2 |
舉例
一張RGB_565
的圖片,長寬分別是1024 * 768
,則:1024 * 768 * 2 = 1572864
大約等於1.5Mb的記憶體佔用量
實際測試
|
|
Result : D/ANDROID_LAB: memSize = 6460752B = 6.1614532470703125MB
這張圖是1916*843
的圖,每一像素為4Byte,所以未經處理的圖片在Android系統中將會佔用6MB多的記憶體空間。
也就是說,浪費了6MB的空間,實際上只顯示了小小的一張圖在畫面,所以建議圖片顯示之前一定要先處理過圖片。
另外對圖片的處理,並非將KB數壓縮就能解決
舉例
以下三張圖片,實際放入imageView之後佔用的記憶體是相同的,並不會因為單純降低畫質而影響佔用記憶體大小
Q:100 DPI:300 | Q:1 DPI:300 | Q:1 DPI:30 |