关于 Android 默认字体以及对比微软雅黑字体

简介:

 用了一段时间 Android 手机之后,不禁对系统中的字体产生了兴趣。因为看起来,Android 中使用的中文字体和 Windows 中使用的“微软雅黑”很像,我一度怀疑 Android 中使用的就是这个字体。今天有时间,就一探究竟吧。

由于 Android 是基于 Linux 的操作系统,因此根据 Linux 上的经验,在手机上使用“ES文件浏览器”浏览到文件系统的 /system/fonts 文件夹,就可以看到系统中安装的字体。为了方便观察,我把它们复制到电脑上了:

image

wbpluto的手机中一共有9个字体文件:1个为时钟显示准备的Clockopia,4种样式的无衬线(Sans Serif)字体,4种样式的衬线(Serif)字体。关于衬线和无衬线,各位可以上网搜索一下相关的介绍了解。

这9个字体文件中,Droid Sans Fallback 体积明显较大,达到4.2MB,而其他的只有一百多KB。原来,其他字体只包含了西方文字字符,因为西方文字都是拼音文字,只需要少量字符就可以拼成各种单词,而中日韩等东亚文字基于“型”而不是基于“声”,因此字符成千上万,非常多。在计算机系统中,为西方文字准备的字体都非常小,不包含东亚字符,为了解决在使用西方字体时无法显示东亚文字的问题,就采用了目前这种方式:将一种字体与另一种(或多种)字体链接,遇到第一种字体无法显示的字符,自动调用链接的字体来显示。

例如在 Android 系统中,Droid Sans 是默认字体,只包含西方字符,应用程序默认情况下都会调用它;而 Droid Sans Fallback 包含了东亚字符。当需要显示的字符在 Droid Sans 字体中不存在(如汉字),即没有对应编码的字符时,系统会到 Droid Sans Fallback 中去寻找相应编码的字符,如果找到,则使用 Droid Sans Fallback 字体来显示它,如果仍然找不到该编码对应的字符,则系统无法在屏幕上显示出这个字符。

各种操作系统中都有这样的运行机制,例如在英文版的 Windows 7 系统或英文版的应用软件中,界面默认采用的是在开发 Vista 时专门为屏幕显示而全新设计的 Segoe UI 字体,其中并不包含中文字符,但当系统需要显示中文字符时,会自动去调用对应的“微软雅黑”字体来显示(如下图)。当然,这一链接关系是保存在 Windows 注册表中的,我们可以通过修改注册表来改变它。

image

下面,通过一幅图来对比一下 Droid Sans Fallback 和 微软雅黑这两个长得非常像的字体:

vs

  • 雅黑字体显得更宽。但根据整行汉字来看,雅黑单个字符的宽度并没有更宽,只是减少了边缘的空白,使字间距变小,相邻两个字的笔画几乎要挨在一起了。
  • 雅黑字体笔画分布均匀,如“地”字,四条竖线之间的间隔一致。
  • 雅黑字体布局更合理,如“图”字里面的“冬”看起来重心很稳,而 Droid Sans Fallback 中的“冬”有点要倒的感觉。
  • 由于宽度和笔画布局上的不同,造成雅黑字体看起来更丰满(肥),更紧实。
  • 这两种字体都是非等宽字体,可以看出雅黑的英文字母和数字普遍更宽(中文由于是方块字,宽度没有区别)。
  • 雅黑在可能的情况下笔画更长,例如“号”字下方的勾,这样在小字号时可读性更好。
  • 小字号情况下,雅黑字体仍然显得大一些,并且由于笔画的间距控制得较好,更容易看清楚每个字,相比之下,Droid Sans Fallback 笔画黏在一起的情况稍微严重一些(如“最”字)。
  • 仔细观察一下,小字号时的雅黑字底部并没有完全对齐,而 Droid Sans Fallback 对得很整齐。因此雅黑在小字号时有点大小不一,这也是其广为诟病的一点。

需要说明的是,虽然字体文件中指定了字符的笔画,但字符的渲染效果仍然和系统环境有关系,上图是使用 Photoshop 制作的,和手机上的显示效果不完全相同。尽管如此,由于处在同一个渲染环境下,我们仍然可以对比出两种字体的区别和各自的特点。

目前,网上已经有人在制作使用微软雅黑字体的 Android 手机 ROM。我个人认为,这两种字体已经非常相似,都具备了现代字体的特点,以上列出的差异都是细节上的,对于屏幕阅读来说并不是那么重要。因此使用这两种字体当中的哪一种可以根据爱好选择,你有权更喜欢前者,也有权更喜欢后者,智能手机机玩的就是自由和定制性,只要用起来顺心,得到满足和方便就行。

如果各位有更多见解,欢迎评论交流。


本文转自wbpluto 51CTO博客,原文链接:http://blog.51cto.com/wbpluto/476716,如需转载请自行联系原作者

相关文章
|
Android开发
Android 自带的字体库、字体样式
Android 自带的字体库、字体样式
1069 0
Android 自带的字体库、字体样式
|
Java Android开发
TextView字体加粗 ---Android基础篇
TextView字体加粗 ---Android基础篇
582 0
|
IDE 开发工具 Android开发
Android Studio 设置其整个软件平台下的背景和字体风格
Android Studio 设置其整个软件平台下的背景和字体风格
528 0
Android Studio 设置其整个软件平台下的背景和字体风格
|
Android开发
Android Studio修改字体大小
.菜单栏:File --Settings --Appearance & Behavior -- Appearance ,右边Override default fonts by(not recommended)
281 0
Android Studio修改字体大小
|
Android开发
Android引入外部字体更改APP字体
将Android Studio切换到project形式下进入到main目录,右键新建文件夹assets,再右键新建fonts文件夹,把准备好的.ttf文件放在该文件夹下。
272 0
Android引入外部字体更改APP字体
|
小程序 Android开发
Android自定义TextView实现高度和宽度,解决字体适配问题
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
990 0
|
前端开发 Android开发
Android项目实战(二十三):仿QQ设置App全局字体大小
原文:Android项目实战(二十三):仿QQ设置App全局字体大小 一、项目需求: 因为产品对象用于中老年人,所以产品设计添加了APP全局字体调整大小功能。 这里仿做QQ设置字体大小的功能。    QQ实现的效果是,滚动下面的seekbar,当只有seekbar到达某一个刻度的时候,这时候上部分的效果展示部分会改变文字大小, 但是在拖动过程中字体不会改变。
1079 0
|
Android开发
Android代码设置TextView的顶部图及设置图与字体之间距离
终于建了一个自己个人小站:https://huangtianyu.gitee.io,以后优先更新小站博客,欢迎进站,O(∩_∩)O~~ 现在很多的设计底部都是几个Tab标签,每个标签都是上边是图片,下边是文字。
2397 0
|
Java Android开发
浅扒Android动态设置字体大小
说点废话 Android开发中,TextView类的控件应该说是很常用了。一般来说我们是通过android:textSize="20sp" 来设置字体大小,但是很多时候也需要动态设置字体大小,调用也很简单: textView.
1382 0