关于 Android 默认字体以及对比微软雅黑字体
2010-06-28 14:13:00 来源:WEB开发网用了一段时间 Android 手机之后,不禁对系统中的字体产生了兴趣。因为看起来,Android 中使用的中文字体和 Windows 中使用的“微软雅黑”很像,我一度怀疑 Android 中使用的就是这个字体。今天来个一探究竟。
由于 Android 是基于 Linux 的操作系统,因此根据 Linux 上的经验,在手机上使用“ES文件浏览器”浏览到文件系统的 /system/fonts 文件夹,就可以看到系统中安装的字体。为了方便观察,我把它们复制到电脑上了:
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 注册表中的,我们可以通过修改注册表来改变它。
更多精彩
赞助商链接