【轉】徹底理解安卓里的ldpi、mdpi、hdpi、xhdpi、xxhdpi文件夾含義


這個問題我相信困惑了好多人包括很多老鳥,而且有的人以為自己理解其實是錯誤的,包括之前的我在內,在做 安卓適配的時候,一般讓美工做720*1280的切圖,就直接放到xhdpi下,如果是做了1080*1920,就直接放到xxhdpi下。

   其實這四個文件夾和具體的屏幕分辨率是沒直接關系的,上面說的做法也有一定道理,因為大部分的720*1280的手機都是高密度手機,1080*1920都是超高密度手機,但是這四個文件夾之和屏幕密度有關,和具體分辨率無關。

徹底理解安卓里的ldpi、mdpi、hdpi、xhdpi、xxhdpi文件夾含義


   下面給出一個最最關鍵的等式:
low:medium:high:extra-high:extra-extra-high=3:4:6:8:12

   OK,就是說五個文件夾的比例為3:4:6:8:12。具體是怎么回事呢?下面分析一下:
比如我用一個480*800的4寸手機,這個手機的屏幕密度按照Google的說法,就屬於密度為high level的水平(通過分辨率和屏幕尺寸計算密度,然后google自己有一套標准說你位於哪個范圍屬於哪個level的密度水平),然后這個手機的應用在用圖片的時候,就會去hdpi下去找,並且以這個文件夾的圖片為標准,也就是說比如我的應用去取一張aa.png的圖片,這個圖片的原圖尺寸為30*30,恰好hdpi下有一張,那這張圖片顯示到屏幕上以后,它的顯示尺寸長寬都為30px。那問題來了,但如果我的hdpi下沒有這張圖片,而只在xhdpi下有這張圖片,圖片的原圖尺寸是30*30,那請問顯示到屏幕上的圖片的尺寸會是多大呢,還是長寬都為30px嗎?


   答案是否定的,而且現在就用到了上面那個比例,high:extra-high=6:8。先明確這樣一個問題,如果我的屏幕是hdpi的,結果我的圖片是放到了xhdpi下,那系統會把這張圖片進行縮小顯示,也就是說我的xhdpi下放了一張30*30的圖片,那顯示當hdpi屏幕上肯定要比30*30小,這樣才能保證說大小屏幕界面顯示效果是一致的,因為密度小的手機顯示一張圖片要比密度大的手機顯示同一張圖片的面積要大,要想顯示面積一樣就必須要把圖片搞小點。接上面的問題,假設顯示在我的hdpi屏幕上的圖片的寬度為x,那滿足以下等式:
6:8=x:30 。  


可得到x=22.3,向后取整數得23 。

 

from:http://www.bafenbaosoft.com/post/40.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM