关于Android的字体

来源:互联网 发布:中国招标软件 编辑:程序博客网 时间:2024/05/21 08:00

原文链接: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.xmlsystem_fonts.xmlvendor_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中描述的第10family(从0开始),也就是DroidSansFallback.ttf,使用这种方法前也需要将“XXXXX.ttf”拷贝到/system/fonts

三。总结:

这次也不废话了,不过要提醒一下,字库大部分都是有版权的,所以用别人的字库前都要小心,这也是为什么Android不再Settings中添加字体的选择栏的原因,如果你用了别人的字库没有交保护费的话而产品又买了不少钱的话,呵呵,律师函估计已经在抵达的途中。


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 8岁儿童牙齿不齐怎么办 两个牙齿之间有缝隙怎么办 蛀牙就剩牙根了怎么办 牙龈发白像烂了怎么办 3岁宝宝牙龈肿痛怎么办 1岁宝宝牙龈肿痛怎么办 牙疼引起的发烧怎么办 2岁小儿牙龈红肿怎么办 宝宝出牙牙龈红肿怎么办 3岁宝宝牙龈红肿怎么办 1岁宝宝牙龈红肿怎么办 4岁宝宝牙龈红肿怎么办 儿童牙黑了怎么办啊 牙黑了掉了一块怎么办 1岁幼儿牙齿腐蚀怎么办 我的大牙变黑了怎么办 牙齿里面黑了疼怎么办 最里面的牙黑了怎么办 牙龈的肉裂开了怎么办 有蛀牙怎么办可以变好么 拔智齿没拔干净怎么办 蛀牙只剩牙根了怎么办 牙掉的就剩牙根怎么办 蛀牙牙冠都掉了怎么办 拔智齿断了牙根怎么办 牙肉肿痛有脓包怎么办 种植牙到寿命后怎么办 牙齿松动快掉了怎么办 一颗牙齿松动了怎么办 种植牙牙冠掉了怎么办 牙就剩下牙根了怎么办 后面的大牙掉了怎么办 两边大牙都没了怎么办 拔牙把牙根断了怎么办 拔乳牙牙根断了怎么办 拔牙时牙根断了怎么办 孕晚期牙根掉了怎么办 根管治疗后牙裂怎么办 智齿拔断了牙根怎么办 大牙断了牙根还在怎么办 孕妇牙疼的要命怎么办