❶ iOS、Android 開發單位換算及 UI 切圖要求
在移動端 UI 設計中,經常會用到的單位有 4 種:px、pt、dp 和 sp,很多人分辨不清這幾種單位及其換算關系,以及 iOS 和 Android 的切圖要求,我在這里做下簡單的介紹,希望大家讀完後能有所收獲(如有錯誤,歡迎糾正)。
px 即 pixel,像素點,電子屏幕上組成圖像的最基本單位,在描述屏幕解析度時也會使用該單位。1px 表示一個像素,例如 iPhone 8 的尺寸為 750px × 1334px,表示在該手機屏幕上,水平方向每行有宴握 750 個像素點,垂直方向每列有 1334 個像素點。
pt 即 point,有兩個含義:一是印刷行業常用單位,是一個標准長度單位,絕對大小,1pt = 1/72 英寸 = 0.35mm;二是 iOS 開發用的基本單位,當設計師以 1 倍尺寸進行設計 (375pt × 667pt) 並給出標注稿時,開發人員無需除以 2 便可直接使用。
dp 是安卓開發用的基準單位,在 dpi (屏幕像素密度,即每英寸包含的像素點) 為 160 的屏幕為上,1dp = 1px。為了簡單起見,Android 把屏幕密度分為了 5 種:mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi,下文會詳細介紹其換算關系。
在安卓系統里,sp 與 dp 類似,不同的是 sp 可以根據用戶的字體大小首選項進行縮放,晌告慶友老而 dp 則不會。 盡量使用 dp 作為空間大小單位,sp 作為文字相關大小單位,例如:新聞類和簡訊類等大篇幅文本,推薦使用 sp 為單位。
在 iOS 開發中,不同機型的 iPhone 設備需要用到不同倍率的切圖,下表格為各 iPhone 機型顯示屏參數對比:
這里再簡單了解下兩個概念,ppi 和 dpi。
ppi (iOS):即 pixel per inch,屏幕像素密度,表示每英寸所包含的像素點,該值越高,屏幕越細膩。
dpi (iOS) :開發像素密度,表示每英寸所包含的開發像素點。
在 iOS 開發中,規定以 ppi = 163,dpi = 163 作為開發基準,
當 ppi = 163,dpi = 163 時,則 1pt = 1px;
當 ppi = 326,dpi = 163 時,則 1pt = 2px;
當 ppi = 401,dpi = 154 時,則 1pt = 2.6px ≈ 3px。
(為什麼 iPhone 8+/7+/6+ 的開發基準是154?可能要問問蘋果了...)
依此類推,得出換算公式一:
若有小數,四捨五入即可。
在 iOS 開發中,目前只需要 @2x 和 @3x 兩種切圖,所以導出 2 倍和 3 倍的 png 圖片即可。導出前注意檢查切圖是否存在半像素、毛邊等情況,保證對齊像素,這樣才能有效避免上線後頁面上的 icon 出現虛邊的問題,提高細節質量。
另外補充一點:從整體開發尺寸看,iPhone 8 是 375 × 667 pt (@2x),而 iPhone X 是 375 × 812 pt (@3x),同樣的寬度,一個用 @2x 圖,一個用 @3x 圖,iPhone X 表現出了更高的清晰度,如圖 2-1 所示。
在 Android 開發中,因為機型參差不齊,需要用屏幕密度來區分設計。
注意,這里的 dpi (Android) 和上文的 dpi (iOS) 是不同的概念,dpi (iOS) 是開發像素密度,而 dpi (Android) 即 dot per inch,表示屏幕像素密度 ,類似 iOS 開發里的 ppi。
Android 中,規定以 dpi = 160 為開發基準,
當 dpi = 160,基準dpi = 160,1dp = 1px;
當 dpi = 240,基準dpi = 160,1dp = 1.5px;
當 dpi = 320,基準dpi = 160,1dp = 2px。
依此類推,得出換算公式二:
在設計圖標時,對於 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 開發中用到的一種特殊格式的圖片,文件名以 「.9.png」 結尾。
這種圖片能告訴程序,圖像哪一部分可以被拉升,哪一部分不能被拉升需要保持原有比列。運用點九圖可以保證圖片在不模糊變形的前提下做到自適應,比如對話框背景圖片就會用到點九圖。
--
以上是全部內容,感謝你的閱讀!
End
❷ APP安卓原生 設計該怎麼切圖給開發
安卓的機器的確比較多,各廠商各種機型的屏幕大小不一,碎片化比較嚴重。但只考慮原生的分類,應該也不會很多啊。mdpi,xhdpi,xxhdpi各做一套應該就行了吧。