最近在研究圖片相關的一些問題;做了一些整理和分析
常規的去百度的時候,更多的說是 圖片大小是: height*width*4b但是這個是對的嗎?
這個邊就對res文件下面的mimap做一個調研;
首先來一個列表數據整理吧
密度 | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi |
密度值 | 120 | 240 | 320 | 480 | 640 |
需要看一下這個表很重要的;這張圖片的大小是1024*768 電腦裏面顯示大小114.30k
安卓版本(5.1,7.1,8.1) | 目錄文件 | 佔據內存大小(B) |
安卓版本(5.1,7.1,8.1) | mdpi |
28311552 |
安卓版本(5.1,7.1,8.1) | hdpi |
12582912 |
安卓版本(5.1,7.1,8.1) | xhdpi |
7077888 |
安卓版本(5.1,7.1,8.1) | xxhdpi |
3145728 |
安卓版本(5.1,7.1,8.1) | xxxhdpi |
1769472 |
那麼先按height * width * 4b 爲什麼是*4b呢?因爲系統默認是ARGB_8888 所以按4B來計算;
那麼回到我們的問題 1024 * 768 * 4 (B) = 3145728 (B)
那麼和上面任意一個對的上嗎?對不上的;
那麼爲什麼呢?
我們再去拿一個東西;dpi這個東西(對應手機,命令鍵是:adb shell wm density)獲取到的dpi是480
那麼 1024 * (480/120(mdpi))*768 * (480/120(mdpi))*4 = 28311552 B
其他的大家可以自行驗證;
那麼奇怪的是爲什麼我這邊寫的只有9.0以下的版本
因爲在測試9.0以及9.0之後的版本,無論放在哪一個目錄下面
得出的結論就是 1024 * 768 * 4 (B) = 3145728 (B)這個需要看一下源碼才能知道,因爲源碼級別在C裏面所以這個待研究
所以以上,我們可以大概進行估算我們的圖片大小大概應該是多大;