尺寸各單位之間的相互轉換

計算dpi 

假設一個設備的屏幕爲4英寸,分辨率爲480*800,如何計算它的dpi?

因爲不知道邊長,肯定不能分開算,因爲4是對角線長度,所以先用勾股定理計算對角線像素,然後除以4,算出來大概是dpi=233像素/英寸、。

 那麼density就是(233px/inch)/(160px/inch)=1.46

在Android中,標準dpi爲160,稱爲MDPI

計算dp與px

寫佈局的時候,我們用的尺寸單位通常是dp,那麼1個dp到底有多少px?他們之間的換算公式如下:

dp=(DPI/(160像素/英寸))px=density px

注意,這裏都是帶單位px是單位,dp是單位,density沒單位

例如,假設設備的dpi是240像素/英寸,那麼density就是240/160=1.5,因此在該設備上,1dp=1.5px。如果在佈局中定義了某個控件的寬度爲100dp,那麼在該設備中,控件的寬度應顯示爲1.5*100=150px

爲什麼標準dpi定位160?

Android Design裏把主流設備的dpi歸成了四個檔次,120dpi,160dpi,240dpi,320dpi,分別稱爲LDPI,MDPI,HDPI,XHDPI,現在還有XXHDPI(480dpi),xxxHDPI(640dpi).

爲什麼在佈局的時候最好用dp,不用px?

因爲實際中存在很多不同屏幕密度(dpi)的手機,想象一下,如果這些手機的尺寸一樣,屏幕的密度相差很大,也就是說一個手機水平方向上像素較少,另一個手機水平方向上像素較多。那麼我們畫同樣px數量的時候,它在不同dpi的手機上顯示的長度就會不一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章