您的位置:首页 > 移动开发 > Android开发

关于Android的字体

2013-05-31 14:01 141 查看
原文链接:http://blog.chinaunix.net/uid-26926660-id-3325421.html

分类: 嵌入式

一。背景

尽量写简单一点这次就不废话了。

二。分析

2.1. 文件系统中字体的位置:
/system/fonts/ 其中的ttf文件都是字库 对于源码/frameworks/data/fonts/下的字体文件

DroidSans-Bold.ttf 粗体的无衬线字体(拉丁字母等)

DroidSans.ttf 常规的无衬线字体(拉丁字母等)

DroidSansFallback.ttf 常规的无衬线字体(中文字符等,一般换字库就是替换此文件)

DroidSansMono.ttf 等宽的无衬线字体(拉丁字母等)

DroidSerif-Bold.ttf 粗体的衬线字体(拉丁字母等)

DroidSerif-BoldItalic.ttf 粗体+斜体的衬线字体(拉丁字母等)

DroidSerif-Italic.ttf 斜体的衬线字体(拉丁字母等)

DroidSerif-Regular.ttf 常规的衬线字体(拉丁字母等)

Clockopia.ttf (显示数字时钟时用的字体,非必须)

在frameworks/fonts/下有三个xml文件,分别是fallback_fonts.xml、system_fonts.xml、vendor_fonts.xml,最终被编进系统的是前面两个。

改变字体有不外乎两种方法,一是强制替换掉系统的默认字体,也就是把你想要替换的字体重命名成DroidSansFallback.ttf,替换掉/system/fonts/下原来的那个,另外一种方法就是通过定义vendor
fonts xml的方法来设置,对于我们来说,第一种方法太过于暴力,且没有选择的余地。所以第二种方法更为可行

暴力替换法就不说了,现在说说厂商字体法:

2.2. vendor fonts方法:
假设你要添加一个XXXXX.ttf格式的字体文件:

按照android用例vendor_fonts.xml文件中注释介绍的方法,在/vendor/etc/目录下创建一个fallback_fonts.xml,例如

<familyset>

<family order="9">

<fileset>

<file>XXXXX.ttf</file>

</fileset>

</family>

</familyset>

其中family order就表示描述的插入的vendor字体的需要代替的位置,即/system/etc/fallback_fonts.xml中描述的第10个family(从0开始),也就是DroidSansFallback.ttf,使用这种方法前也需要将“XXXXX.ttf”拷贝到/system/fonts下

三。总结:

这次也不废话了,不过要提醒一下,字库大部分都是有版权的,所以用别人的字库前都要小心,这也是为什么Android不再Settings中添加字体的选择栏的原因,如果你用了别人的字库没有交保护费的话而产品又买了不少钱的话,呵呵,律师函估计已经在抵达的途中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: