在移動端 UI 設計中愉耙,經常會用到的單位有 4 種:px贮尉、pt、dp 和 sp朴沿,很多人分辨不清這幾種單位及其換算關系猜谚,以及 iOS 和 Android 的切圖要求败砂,我在這里做下簡單的介紹,希望大家讀完后能有所收獲(如有錯誤魏铅,歡迎糾正)昌犹。
一、常用單位
1. px (像素)
px 即 pixel览芳,像素點斜姥,電子屏幕上組成圖像的最基本單位,在描述屏幕分辨率時也會使用該單位路操。1px 表示一個像素疾渴,例如 iPhone 8 的尺寸為 750px × 1334px,表示在該手機屏幕上屯仗,水平方向每行有 750 個像素點搞坝,垂直方向每列有 1334 個像素點。
2. pt (磅)
pt 即 point魁袜,有兩個含義:一是印刷行業(yè)常用單位桩撮,是一個標準長度單位,絕對大小峰弹,1pt = 1/72 英寸 = 0.35mm店量;二是 iOS 開發(fā)用的基本單位,當設計師以 1 倍尺寸進行設計 (375pt × 667pt) 并給出標注稿時鞠呈,開發(fā)人員無需除以 2 便可直接使用融师。
3. dp (也稱 dip)
dp 是安卓開發(fā)用的基準單位,在 dpi (屏幕像素密度蚁吝,即每英寸包含的像素點) 為 160 的屏幕為上旱爆,1dp = 1px。為了簡單起見窘茁,Android 把屏幕密度分為了 5 種:mdpi怀伦、hdpi、xhdpi山林、xxhdpi房待、xxxhdpi,下文會詳細介紹其換算關系驼抹。
4. sp (可縮放獨立像素)
在安卓系統(tǒng)里桑孩,sp 與 dp 類似,不同的是 sp 可以根據用戶的字體大小首選項進行縮放砂蔽,而 dp 則不會洼怔。 盡量使用 dp 作為空間大小單位,sp 作為文字相關大小單位左驾,例如:新聞類和短信類等大篇幅文本,推薦使用 sp 為單位。
二诡右、pt 與 px 換算
1. pt = (ppi / dpi) px
在 iOS 開發(fā)中安岂,不同機型的 iPhone 設備需要用到不同倍率的切圖,下表格為各 iPhone 機型顯示屏參數(shù)對比:
機型 | X | 8+/7+/6+ | 8/7/6/6s | 5/5s | 4/4s |
---|---|---|---|---|---|
屏幕尺寸(inch) | 5.8 | 5.5 | 4.7 | 4 | 3.5 |
物理尺寸(px) | 1125 × 2436 | 1080 × 1920 | 750 × 1334 | 640 × 1136 | 640 × 960 |
設計尺寸(px) | 1125 × 2436 | 1242 × 2208 | 750 × 1334 | 640 × 1136 | 640 × 960 |
開發(fā)尺寸(pt) | 375 × 812 | 414 × 736 | 375 × 667 | 320 × 568 | 320 × 480 |
ppi | 458 | 401 | 326 | 326 | 326 |
dpi | 163 | 154 | 163 | 163 | 163 |
倍率 | @3x | @3x | @2x | @2x | @2x |
這里再簡單了解下兩個概念帆吻,ppi 和 dpi域那。
ppi (iOS):即 pixel per inch,屏幕像素密度猜煮,表示每英寸所包含的像素點次员,該值越高,屏幕越細膩王带。
dpi (iOS) :開發(fā)像素密度淑蔚,表示每英寸所包含的開發(fā)像素點。
在 iOS 開發(fā)中愕撰,規(guī)定以 ppi = 163刹衫,dpi = 163 作為開發(fā)基準,
當 ppi = 163搞挣,dpi = 163 時带迟,則 1pt = 1px;
當 ppi = 326囱桨,dpi = 163 時仓犬,則 1pt = 2px;
當 ppi = 401舍肠,dpi = 154 時搀继,則 1pt = 2.6px ≈ 3px。
(為什么 iPhone 8+/7+/6+ 的開發(fā)基準是154貌夕?可能要問問蘋果了...)
依此類推律歼,得出換算公式一:
pt = (ppi / dpi) px
若有小數(shù),四舍五入即可啡专。
2. iOS 切圖要求
在 iOS 開發(fā)中险毁,目前只需要 @2x 和 @3x 兩種切圖,所以導出 2 倍和 3 倍的 png 圖片即可们童。導出前注意檢查切圖是否存在半像素畔况、毛邊等情況,保證對齊像素慧库,這樣才能有效避免上線后頁面上的 icon 出現(xiàn)虛邊的問題跷跪,提高細節(jié)質量。
另外補充一點:從整體開發(fā)尺寸看齐板,iPhone 8 是 375 × 667 pt (@2x)吵瞻,而 iPhone X 是 375 × 812 pt (@3x)葛菇,同樣的寬度,一個用 @2x 圖橡羞,一個用 @3x 圖眯停,iPhone X 表現(xiàn)出了更高的清晰度,如圖 2-1 所示卿泽。
三莺债、dp 與 px 換算
1. dp = (dpi / 160) px
在 Android 開發(fā)中,因為機型參差不齊签夭,需要用屏幕密度來區(qū)分設計齐邦。
屏幕密度 | mdpi | hdpi | xhdpi | xxhpdi | xxxhdpi |
---|---|---|---|---|---|
代表設計像素 | 320 × 480 px | 480 × 800 px | 720 × 1280 px | 1080 × 1920 px | 1440 × 2256 px |
dpi | 160 | 240 | 320 | 480 | 640 |
基準dpi | 160 | 160 | 160 | 160 | 160 |
倍率 | @1x | @1.5x | @2x | @3x | @4x |
注意,這里的 dpi (Android) 和上文的 dpi (iOS) 是不同的概念第租,dpi (iOS) 是開發(fā)像素密度措拇,而 dpi (Android) 即 dot per inch,表示屏幕像素密度煌妈,類似 iOS 開發(fā)里的 ppi儡羔。
Android 中,規(guī)定以 dpi = 160 為開發(fā)基準璧诵,
當 dpi = 160著洼,基準dpi = 160纯路,1dp = 1px筛谚;
當 dpi = 240鸠窗,基準dpi = 160,1dp = 1.5px比被;
當 dpi = 320色难,基準dpi = 160,1dp = 2px等缀。
依此類推枷莉,得出換算公式二:
dp = (dpi / 160) px
2. Android 切圖要求
在設計圖標時,對于 5 種主流的屏幕像素密度 (mdpi尺迂、hdpi笤妙、xhdpi、xxhdpi噪裕、xxxhdpi) 應按照 2:3:4:6:8 的比例進行縮放蹲盘,如圖 3-1 所示。
例如膳音,一個啟動圖標的尺寸為 48 × 48 dp召衔,這表示在 mdpi 的屏幕上其實際尺寸應為 48 × 48 px;在 hdpi 的屏幕上其實際大小是 mdpi 的 1.5 倍 (72 × 72 px)祭陷;在 xhdpi 的屏幕上其實際大小是 mdpi 的 2 倍 (96 × 96 px)苍凛,依此類推趣席。
在某些況行下,還需要提供一種特殊的切圖:點九圖 (上圖所示)毫深。點九圖是 Android 開發(fā)中用到的一種特殊格式的圖片吩坝,文件名以 “.9.png” 結尾毒姨。
這種圖片能告訴程序哑蔫,圖像哪一部分可以被拉升,哪一部分不能被拉升需要保持原有比列弧呐。運用點九圖可以保證圖片在不模糊變形的前提下做到自適應闸迷,比如對話框背景圖片就會用到點九圖。
--
以上是全部內容俘枫,感謝你的閱讀腥沽!
End