說到布局和適配,就不得不談?wù)撓耰OS和Android二者布局的單位:pt(point,點(diǎn))和dp(Device independent pixel,Density independent pixel, DIP, DP,又叫與設(shè)備無關(guān)像素或與密度無關(guān)像素或密度獨(dú)立像素)。注意:這里說的point和和印刷行業(yè)的單位point(1pt = 1/72 inch)是有區(qū)別的,看到好多文章都將iOS的pt和印刷行業(yè)的pt單位給等同起來這非常的誤人子弟。
先說結(jié)論:
相同點(diǎn):都是為了適配不同屏幕不同尺寸的移動(dòng)設(shè)備而設(shè)計(jì)出來的一種單位,用于表示UI布局尺寸與設(shè)備屏幕密度無關(guān)
不同點(diǎn):一:pt是iOS設(shè)備的布局尺寸單位,蘋果公司給的定義是:
1pt = 1/163 inch,dp是android設(shè)備的布局尺寸單位,Wikipedia給的定義對于android設(shè)備:1dp = 1/160 inch;二:像素(pixels)和二者的轉(zhuǎn)換關(guān)系不同:iOS pt = pixels * ( ppi/163)、Android dp = pixels * (ppi/160)
在說二者的異同之前,我們得先清楚幾個(gè)概念(以下概念都是在屏幕、顯示器這個(gè)語境下的定義討論的):
inch:英寸,長度單位,1英寸 = 2.54 厘米;
px:pixels,像素,組成圖片、視頻的基本顯示單位;
dpi:dots per inch,每英寸的點(diǎn)數(shù)又叫點(diǎn)密度;可以和下面的ppi概念等同
ppi:pixels per inch,每英寸的像素值又叫像素密度,每英寸像素值越高,屏幕能顯示的圖像也越精細(xì),5ppi表示每平方英寸有5*5個(gè)px
-
屏幕尺寸(screen size):最通俗的理解就是:屏幕對角線的長度,如5.8英寸的iPhoneX;
5.8英寸的iPhoneX 屏幕分辨率(resolution):手機(jī)的屏幕分辨率代表橫向和縱向的像素值,如上圖iPhoneX的分辨率是1125px * 2436px
通過上面的定義,我們知道ppi、屏幕尺寸、屏幕分辨率這三者的關(guān)系為:
ppi = 屏幕對角線的像素值/屏幕尺寸 = √ (屏幕橫向像素值^2 + 屏幕縱向像素值^2)/對角線長度
根據(jù)上面的公式,我們計(jì)算下iPhoneX的像素密度為:√ (1125^2 + 2436^2)/5.8 ≈ 458ppi
px、pt、dp的相互轉(zhuǎn)換
- px、pt、dp是靜態(tài)測量 - 它們不會因其他因素而改變;
1px總是1px,是可以顯示顏色的屏幕中最小的一塊。
1pt總是1pt,是一個(gè)抽象單位,只有與其他點(diǎn)相關(guān)時(shí)才有意義,dp同理。 - pt、dp與px不同,因?yàn)樗鼈兏鶕?jù)ppi更改大?。?br>
在iPhone上,當(dāng)屏幕像素密度為163ppi時(shí),也就是Retina顯示屏時(shí)代之前,所有的iPhone(iPhone 2G, 3G, 3GS),1pt等于1px;在326ppi上(iPhone 4,5和6),1pt等于2px*2px,或總共4px素,意味著你的100x100圖像將渲染在Retina設(shè)備上將是163ppi設(shè)備的四分之一大?。辉?01ppi上(iPhone 6Plus、7Plus、8Plus)這樣的,1pt等于3px*3px,或者9px。
pt和px
iPhone所有機(jī)型的分辨率如下圖:
The Ultimate Guide To iPhone Resolutions
參考文章:


