作為一個新人湾趾,在做移動端UI設(shè)計的時候,往往對px派草,pt搀缠,ppi,dpi近迁,dp艺普,sp不是十分清楚,一倍圖二倍圖三倍圖如何換算鉴竭,導(dǎo)致切圖時不知如何導(dǎo)出歧譬,本人在學(xué)習(xí)過程中整理匯總了一些相關(guān)知識,并盡量用最簡單得語言解釋搏存。設(shè)計師在設(shè)計時可以進(jìn)行參考瑰步。(如發(fā)現(xiàn)文中出現(xiàn)錯誤,請聯(lián)系我更正)璧眠。
名詞解釋:
????點pt: point缩焦,印刷行業(yè)常用單位,等于1/72英寸
? ??像素px:pixel责静,電子屏幕上影像成像的基本單位舌界。
? ??長度單位dp: dip,Density-independent pixel, 是安卓開發(fā)用的長度單位泰演,1dp表示在屏幕像素點密度為160ppi時1px長度
? ? 字體大小sp: scale-independent pixel呻拌,安卓開發(fā)用的字體大小單位。
? ? 點密度dpi:?dot per inch睦焕,每英寸多少點藐握,值越高圖片越細(xì)膩。屬于谷歌旗下第一款A(yù)ndroid設(shè)備為160dpi垃喊,規(guī)定一倍圖為160dpi猾普。???
? ??像素密度ppi:pixel per inch,每英寸像素數(shù)本谜,值越高屏幕越細(xì)膩初家。
面積相等的區(qū)域里,塞進(jìn)了多少個像素乌助,就代表像素密度有多大溜在,塞進(jìn)的像素越多即像素密度越大,肉眼所見細(xì)膩他托。如圖1個方塊代表1個像素掖肋,同一個區(qū)域里,100X100px的區(qū)域塞進(jìn)去像素更多赏参,顯示時也會更清晰細(xì)膩志笼。
計算公式及關(guān)系:
px與pt:1pt= (DPI / 72) px
即ps中沿盅,當(dāng)畫布分辨率為72時,pt=1px; 當(dāng)新建畫布分辨率為72*2=144ppi時纫溃,1pt=2px
dpi與ppi:安卓1倍圖(163dpi)=ios1倍圖(160ppi)腰涧,dpi=ppi
?注意:當(dāng)ppi計算出來>=300,肉眼就已經(jīng)分辨不出其區(qū)別。
?以iphone3GS(320*480px/3.5 inch)為例 紊浩,為ios1倍圖
接下來窖铡,我將用部分主流機型舉例:由得,
iPhone 8 (750*1334px/4.7inch)326
163*2?????為2倍圖
iPhone xr (828*1792px/6.1inch)319
163*2????為2倍圖
iPhone xs (1125*2346/5.8inch)462
163*3?????為3倍圖
用這個公式郎楼,就可以大致判斷每個機型應(yīng)該是幾倍圖万伤。其他就不在詳細(xì)計算了,以1倍的mdpi為基準(zhǔn)呜袁,像素密度更高或者更低的設(shè)備敌买,只需乘以相應(yīng)的倍率,就能得到與基準(zhǔn)倍率相近的顯示效果阶界。上圖:
px和dp:?1dp=(屏幕ppi/ 160)px虹钮,即1dp定義為屏幕密度值為160ppi時的1px
以WVGA屏為例,該屏幕為480px*800px膘融,按3.8寸屏算芙粱,點密度 √ (480^2 + 800^2) / 3.8 = 245,約等于240氧映,對應(yīng)于hdpi屏幕春畔,所以該屏幕1dp=1.5px。安卓端屏幕大小各不相同岛都,根據(jù)其像素密度律姨,分為以下幾種規(guī)格:
1dp定義為屏幕密度值為160ppi時的1px,即在mdpi時臼疫,1dp = 1px择份。 以mdpi為標(biāo)準(zhǔn),這些屏幕的密度值比為:ldpi : mdpi : hdpi : xhdpi : xxhdpi = 0.75 : 1 : 1.5 : 2 : 3;即烫堤,在xhdpi的密度下荣赶,1dp=2px;在hdpi情況下,1dp=1.5px鸽斟。其他類推拔创。
dp和sp:都是安卓的開發(fā)單位,dp是長度單位湾盗,sp是字體單位伏蚊,可根據(jù)用戶字體大小進(jìn)行縮放,一般認(rèn)為1dp=1sp格粪。
Android系統(tǒng)允許用戶自定義文字尺寸大小(小躏吊、正常、大帐萎、超大等等比伏,當(dāng)文字尺寸是“正常”時1sp=1dp疆导,而當(dāng)文字尺寸是“大”或“超大”時赁项,1sp>1dp。
總結(jié):
1.在畫布分辨率=72ppi時澈段,1pt=1px
2.ppi=dpi悠菜,計算公式(√ (屏幕橫向像素點x^2 + 屏幕縱向像素點y^2)/屏幕尺寸inch)
3.?1dp=(屏幕ppi/ 160)px
4.1dp=1sp