咱们在作Android移动APP设计的时候,字号的选择也是很让人头疼,转载一份有关Android系统字体规范,若是在作Android项目的用户应该看看,若是有任何建议欢迎在留言处与咱们交流探讨。html
主要从如下几点作了分析:前端
inch = 2.54cm = 25.4 mm = 72pt, 1pt≈0.35mm
Photoshop里的字体单位pt和point不同。在Photoshop里,一样是10pt的字,只要变换字体,字的高度就会变化。android
以三星Note2为例,PPI = √(1280² + 720²) / 5.5=267字体
经测量,三星Note2的字体高度确实如此,见下图:优化
保证相同字号的字在不一样PPI屏幕上显示的物理高度一致,下面来验证一下。编码
综上,X = Y,这就证实了同为18sp的字在 PPI分别为 267 和 160 时,显示的物理高度都是 2.86mm设计
看书的时候眼睛距离书本的最佳距离为 33cm,书本的阅读距离比较接近于手机的阅读距离,因此咱们来参考下书本上印刷文字的规范。htm
印刷业已经有成熟的行业字号标准,以下表所示:ip
其中正文经常使用的字号是六号(7.5p)、小五号(9p)、五号(10.5p),以下表所示:get
经过计算出 Android规范字号的物理高度,找到每一个字号最接近的印刷字号:
再根据印刷字号的用途,近似得出Android 规范字号的用法
第一步:将sp 换算成px。可是px随PPI 变化而变化,这一点能够从sp 与px的换算公式“sp*ppi/160 = px ”看出来。咱们不能算出全部的状况,因此只计算首选须要适配的ppi 对应的像素高度。
第二步:把算好的像素高度和换算公式“ sp * ppi/160 = px ”同时输出给前端,这样之后再换ppi,前端能够自动计算。另外,前端代码里定义字体高度用的也是px,因此设计师向前端输出以px计算的字号尺寸是很是合适的。例如:
上文中,咱们已经算出了字体像素高度,把这些像素高度画到ps 里,
再把你要使用的字体调到这样的像素高度,得出photoshop 里对应的字号,用于设计。也就是说Photoshop 里的字号都须要根据实际状况,手动调出来,没有捷径。例如ppi 为240 时,对应的像素高度和字体字号以下图所示:
若是ppi 变化,上面的图就不能用了,又要从新算,比较劳神费力,但我目前尚未更好的办法,欢迎你们拍砖,我会积极采纳意见,优化方案。
参考文献:
1.Android 设计指南:
http://www.sunjw.us/adchs/style/typography.html
2.维基百科:点(印刷)
http://zh.wikipedia.org/wiki/%E7%82%B9_(%E5%8D%B0%E5%88%B7
3.百度文库《印刷文字的字体与字号规定》
http://wenku.baidu.com/view/c3f12af9aef8941ea76e05f2.html