如何评价 Smartisan OS 2.0 更换 UI 字体为冬青黑体 如何评价 Smartisan OS 2.0 更换 UI 字体...

作者&投稿:艾钥 2024-07-02
iOS / OS X 中文界面字体,思源黑体是比冬青黑体更好的选择吗

补充一句,上面多次提到的OS X字体“Hiragino Sans GB”在中文系统中被默认翻译作“冬青黑体简体中文”系统自带

冬青黑体,微软雅黑,汉仪旗黑,方正悠黑,思源黑体。

补充:苹方黑体,信黑体。

华文黑体早就不堪重负了,这在不少字体爱好者眼中早已经成为定论。比如其过于夸张造成以至于「影响严重视觉疲劳所产生的无法忽视的痛感」的「妨害视力卫生」的喇叭口,以及其与西文不对应的诡异字重,具体的分析在这里就不贴了,这方面苹果用户的社区当中做了充分的讨论,如 @孙志贵 在他关于 OS X 与 iOS 界面字体的一系列答案中也早有讨论聚合在【专题】《OS X / iOS 六年字体战争》 - ibuick,高手进阶 - 知乎专栏 下。因此华文黑体早该换掉已经成为不争的事实,苹果也在新的系统上 OS X El Capitan 与 iOS 9 上用上了华康苹方。现在我们基本理解,用已有字体作为界面字体如华文黑体家族也是之前没有好字体的一种妥协。另外,即使到了新版 Android 系统,对于多字重字体得到了良好的支持,大多却也只附带了一种字重,锤子认识到了问题,并至少在正常字重外附加了粗字重(如第一张截图启动器上的),还是非常感人的。冬青黑简体中文也是不错的字体,能够换上也是非常值得赞同的。

花开两朵,各表一枝,如果整体来说冬青黑并不是没有需要修正的地方,第一是字形不完全符合大陆标准,第二是,简体中文据我所知只有 W3 和 W6 两个字重?既然锤子的 Smartisan OS 作为 Android 的一个还是挺有良心的 port 那么,下面我们干脆讨论讨论 Android 上的字体的情况好了。

目前来看在 Android 上,因为操作系统已经提供了多种英文字重,因此尤其是外国应用中上已经大量的出现至少开始使用 Thin (300) 字重这样细体的地方了。比如原生的 Roboto 部分,提供了 Thin (100) 、Light (300) 、Regular (400) 、Medium (500) 、Bold (700) 、Black (900) 总共 6 个字重,以及相应的 Italic 斜体版本,虽说并不是全部用到,但 Thin / Light 已经得到了普遍的使用。下面的字体配置都来自于 /system/etc/fonts.xml 。

<family name="sans-serif">
<font weight="100" style="normal">Roboto-Thin.ttf</font>
<font weight="100" style="italic">Roboto-ThinItalic.ttf</font>
<font weight="300" style="normal">Roboto-Light.ttf</font>
<font weight="300" style="italic">Roboto-LightItalic.ttf</font>
<font weight="400" style="normal">Roboto-Regular.ttf</font>
<font weight="400" style="italic">Roboto-Italic.ttf</font>
<font weight="500" style="normal">Roboto-Medium.ttf</font>
<font weight="500" style="italic">Roboto-MediumItalic.ttf</font>
<font weight="900" style="normal">Roboto-Black.ttf</font>
<font weight="900" style="italic">Roboto-BlackItalic.ttf</font>
<font weight="700" style="normal">Roboto-Bold.ttf</font>
<font weight="700" style="italic">Roboto-BoldItalic.ttf</font>
</family>

还有相应的 Condensed 版本

<family name="sans-serif-condensed">
<font weight="300" style="normal">RobotoCondensed-Light.ttf</font>
<font weight="300" style="italic">RobotoCondensed-LightItalic.ttf</font>
<font weight="400" style="normal">RobotoCondensed-Regular.ttf</font>
<font weight="400" style="italic">RobotoCondensed-Italic.ttf</font>
<font weight="700" style="normal">RobotoCondensed-Bold.ttf</font>
<font weight="700" style="italic">RobotoCondensed-BoldItalic.ttf</font>
</family>

也提供了 3 种字重。

这样的话,诸如时钟这样的大字体部分已经开始用 Roboto 的细体,而不是像之前 4.x 时代专门搞一个时钟字体

所以将来用在界面设计上,恐怕只有 W3、W6 两种字重的冬青黑难堪重任了,除非锤子有办法搞出一个 Light 版本。不过我觉得这么些年下来,苹果都没能做成的事情,锤子要做恐怕也难。比较现实的一个搞法自然是用思源黑体。虽然我承认思源黑体不完美,但就现在来看,比较可靠的方案就这个了,当然假如能用上汉仪旗黑也许也不错?

值得注意的是,Google 在它的 Material Design Guidelines (Typography - Style)上面也专门提示了应当应用于不同级别内容处的字重,在这里,它特意为了中日韩文字不完整的字重的考虑,要求有意回避了特殊的字重(粗体)而仅在几处使用了粗体,没有涉及到细体。原文摘录如下

Dense scripts

Chinese, Japanese, and Korean.
Weight: Since Noto CJK has seven weights that match Roboto, use the same weight settings as English.
Font size:
For Title through Caption styles, the font size is 1px larger than that
specified for English. For styles larger than Title, the English type
size is suitable.

尽管如此,由于碰到了不少西方应用中用到了细体,以及粗体与中粗也是我们难以避免的。所以我们干脆自己修改,Android 是可以通过拷贝 OTF/TTF 文件并修改对应的 XML 文件轻而易举地自定义字重和字形的,不过遗憾的是,虽然思源黑体已经提供了相应的 7 种,stock Android 的 5.0+ 上面也仅仅为中文提供了 Regular 这一种中文字重,这一状况到 Android 5.1.1 Lollipop 上仍然没有改善,相应的 Cyanogenmod 系统 CM12.1 上也是如此。思源黑体的 7 种字重如下
Google 对此表述如下

Noto font weights
Noto Sans CJK (Chinese, Japanese, and
Korean) has seven weights: Thin, Light, DemiLight, Regular, Medium,
Bold, and Black. The weight of Noto Sans CJK Regular is the same as
Roboto Regular.
Android 5.1.1 版本中的 fonts.xml 的相应段落却只有一种,摘抄如下:

<family lang="zh-Hans">
<font weight="400" style="normal">NotoSansHans-Regular.otf</font>
</family>

不过由于 Android 的自由程度,root 用户其实可以自由地进行修改,而且 root 似乎在 Android 上面比较普遍更为这一做法提供了可能。(误?)比如我加了 Light 、Medium 和 Bold 三种,现在带有四种字重修改成这样

<family lang="zh-Hans">
<font weight="300" style="normal">NotoSansHans-Light.otf</font>
<font weight="400" style="normal">NotoSansHans-Regular.otf</font>
<font weight="500" style="normal">NotoSansHans-Medium.otf</font>
<font weight="700" style="normal">NotoSansHans-Bold.otf</font>
</family>
<family lang="zh-Hant">
<font weight="300" style="normal">NotoSansHant-Light.otf</font>
<font weight="400" style="normal">NotoSansHant-Regular.otf</font>
<font weight="500" style="normal">NotoSansHant-Medium.otf</font>
<font weight="700" style="normal">NotoSansHant-Bold.otf</font>
</family>

然后把相应的字体文件拷贝到 /system/fonts 里面重启即可,这里我修改了中文的简体和繁体部分。想要吐槽的一点是,我搞不懂为什么某些厂家比如 Motorola 居然在 Android 5.0.1 之类版本的系统上还强行在用 Droid Sans Fallback 真是搞不懂那些设计师怎么想的了。

另外思源黑体(Noto Sans)的 Github 集合在 googlei18n/noto-cjk · GitHub 这里,注意需要选择合适的版本应该是要选用 Region-specific OTF 的。这一块其实比较乱,可能需要 @Belleve@孙志贵 提示一下。

然后就说,有多个字重简直太爽了。比如,知乎的 Navigation Bar 居然是黑体,然后现在正常显示出来了,还有好多 Tabs 也能正常显示出粗体,Facebook 人名处的粗体,还有好多软件的细体,比如 Falcon Pro 的人名,Facebook Messenger 的欢迎界面、各种头像缺失用文字代替的地方也是正常了,真是太感人了。

下面是图片时间
Facebook 上人名与按钮的字重
注意「欢迎使用」四个字的字重是 Thin/Light,下面的应该是 Medium/Bold。
Falcon Pro 上人名的字重

国内厂商,由于系统不带 Regular 以外的字重,基本都没有为此做好准备,除非是直接用了通用控件的(比如网易云音乐的部分 tabs (误?)),注意推荐二字。
Play Music 字体字重良好。
以及设置界面各种小标题是粗体

这里要批评的可能回是腾讯家的,我不知道现在怎么样,当我往字体列表里中文部分面加了 Black 字重时候,腾讯系所有用了 QQ 浏览器 X5 内核的 WebView 会把所有中文部分 Regular 字重变 Bold,Bold 变 Black,英文部分的 Roboto 没问题,十分诡异。这个事情我给微信团队报过 Bug ,不知道修没修,如果有知道的吱一声。下图是 Chrome 和微信内置 WebView 访问同一知乎日报的结果
现在我把 Black 字重去掉后就正常了。总的来讲,国内厂商在使用字重方面还要加油,实际上,即使在没有相应字重的设备上预先指定字重也没什么坏处,不是么?值得一提的是,很多内容上能够正常显示粗体,我已经很满足了,比如知乎不少答案、很多用到了黑体的网页。比如下图
Google 自己新做的 Message 应用里面的头像如果出现未规定为图片会用首字替代,这个字会相应使用细体。以及相应未读消息也会使用粗体和正常体区分。

添加字重的一个坏处就是,启动速度会变慢,这个明显可以感受得到,其它倒没什么,大概因为中文字体实在太大了,我想恐怕 stock Android 不带那么多字体也是出于这样的考虑。

所以即使从华文黑体到冬青黑,也不是一个完美的解决办法,虽说不管怎样都是一项负责任的努力了,不是么?我很期待旗黑被大规模用在界面上,尤其最近刚刚发布了窄体,也就是能和 Condensed 对应了,嗯嗯,旗黑在这些上面确实很拼,在之前 15 个字重的基础上又发布了 8 个不同宽窄的系列每个系列 7 个不同的字重的字体,这个消息真是太振奋人心了,是的你没看错。汉仪旗黑的微博最近一直在推广,不过我看到的关注者却很少,是时候安利一发了,这一篇汉仪字库在 LOFTER 上面的文章 潮流前端的家族字体 先扯了一大堆字体知识之后干货在最后的多宽度的发布上。它这么介绍旗黑:

汉仪旗黑,2013年首发,2014年15款家族字体面世,今年7月,将新上市X和Y共8个系列7个字重,共56款新字体。是大陆目前最庞大的家族字符。

以下图片摘自那篇轻博客。
信黑,一直也是不错,但是最近没啥动静了啊?

另外, @NovaDNG 在 » 思源黑体, 一款好用的开源中文字体 锋客网 也曾经讨论过目前 Android 上中文字体字重的问题。

总的来讲,感谢所有的爱好者的关注,毕竟,能注意到这些的说到底都是一个太小太小的圈子。目前也算是有了长足的进步,但毕竟在这个方面,任重而道远。


你是否需要了解?