- 1. 移動(dòng)設(shè)計(jì)中與字號(hào)有關(guān)的基本概念
- px:Pixels即像素,基本原色素及其灰度的基本編碼。
- DPI:dots per inch,是印刷上的記量單位,意思是每個(gè)英寸上,所能印刷的網(wǎng)點(diǎn)數(shù)。
- PPI:pixels per inch 數(shù)字影像的解析度,意思是每英寸所擁有的像素?cái)?shù),即像素密度。
- PPI = √(長(zhǎng)度像素?cái)?shù)2 + 寬度像素?cái)?shù)2) / 屏幕對(duì)角線英寸數(shù)
- pt:Point,磅因,國(guó)際通行的印刷單位,是一個(gè)自然界標(biāo)準(zhǔn)的長(zhǎng)度單位。
inch = 2.54cm = 25.4 mm = 72pt, 1pt≈0.35mm
Photoshop里的字體單位pt和point不一樣。在Photoshop里,同樣是10pt的字,只要變換字體,字的高度就會(huì)變化。
- dp:Density-independent pixels,以160PPI屏幕為標(biāo)準(zhǔn),則1dp=1px
- dp和px的換算公式 :dp*ppi/160 = px
- sp:Scale-independent pixels.安卓的字體單位,以160PPI屏幕為標(biāo)準(zhǔn),當(dāng)字體大小為 100%時(shí), 1sp=1px
- sp 與 px 的換算公式:sp*ppi/160 = px
2. Android 系統(tǒng)默認(rèn)字體 Rotobo,限定使用以下字號(hào)
3. Android 字體單位 sp 與 px 的換算
- PPI = √(長(zhǎng)度像素?cái)?shù)2 + 寬度像素?cái)?shù)2) / 屏幕對(duì)角線英寸數(shù)
- sp與px的換算公式:sp*ppi/160 = px
以三星Note2為例,PPI = √(12802 + 7202) / 5.5=267
經(jīng)測(cè)量,三星Note2的字體高度確實(shí)如此,見下圖:
4. 規(guī)范字號(hào)的意義
保證相同字號(hào)的字在不同PPI屏幕上顯示的物理高度一致,下面來驗(yàn)證一下。
- 設(shè)定 PPI為 267 時(shí),高度18sp(即 30px)的字的物理高度為 X,則:
一英寸里的像素?cái)?shù) 267 / 一英寸里的毫米數(shù) 25.4mm = 30 / X X ≈ 2.86mm
- 設(shè)定 PPI為 160 時(shí),高度18sp(即 18px)的字的物理高度為 Y,則:
一英寸里的像素?cái)?shù) 160 / 一英寸里的毫米數(shù) 25.4mm = 18 / Y Y ≈ 2.86mm
綜上,X = Y,這就證明了同為18sp的字在 PPI分別為 267 和 160 時(shí),顯示的物理高度都是 2.86mm
5. 印刷業(yè)的規(guī)范字號(hào)的用法
看書的時(shí)候眼睛距離書本的最佳距離為 33cm,書本的閱讀距離比較接近于手機(jī)的閱讀距離,所以我們來參考下書本上印刷文字的規(guī)范。
印刷業(yè)已經(jīng)有成熟的行業(yè)字號(hào)標(biāo)準(zhǔn),如下表所示:
其中正文常用的字號(hào)是六號(hào)(7.5p)、小五號(hào)(9p)、五號(hào)(10.5p),如下表所示:
6. Android 規(guī)范字號(hào)的近似用法
通過計(jì)算出 Android規(guī)范字號(hào)的物理高度,找到每個(gè)字號(hào)最接近的印刷字號(hào):
再根據(jù)印刷字號(hào)的用途,近似得出Android 規(guī)范字號(hào)的用法
7. 如何向前端輸出?
第一步:將sp 換算成px。但是px隨PPI 變化而變化,這一點(diǎn)可以從sp 與px的換算公式“sp*ppi/160 = px ”看出來。我們不能算出所有的情況,所以只計(jì)算首選需要適配的ppi 對(duì)應(yīng)的像素高度。
第二步:把算好的像素高度和換算公式“ sp * ppi/160 = px ”同時(shí)輸出給前端,這樣以后再換ppi,前端可以自動(dòng)計(jì)算。另外,前端代碼里定義字體高度用的也是px,所以設(shè)計(jì)師向前端輸出以px計(jì)算的字號(hào)尺寸是非常合適的。例如:
8. 如何在photoshop里選擇字號(hào)?
上文中,我們已經(jīng)算出了字體像素高度,把這些像素高度畫到ps 里,
再把你要使用的字體調(diào)到這樣的像素高度,得出photoshop 里對(duì)應(yīng)的字號(hào),用于設(shè)計(jì)。也就是說Photoshop 里的字號(hào)都需要根據(jù)實(shí)際情況,手動(dòng)調(diào)出來,沒有捷徑。例如ppi 為240 時(shí),對(duì)應(yīng)的像素高度和字體字號(hào)如下圖所示:
|