Android 添加自定义的.ttf字库文件到系统

来源:互联网 发布:三维地理信息系统软件 编辑:程序博客网 时间:2024/05/06 06:38

由于项目需要,需要将第三方提供的.ttf字库文件编译至系统源码中,在百度上找了好久,都没有找到想要的,最后还是Google解决了问题,这里作下记录。

Reference:
http://stackoverflow.com/questions/9627806/android-add-custom-fonts-to-system

其实Reference 中介绍的方法,已经非常简单明了,无需赘述,但这里还是将自己的实践记录一下,顺便备注一下需要注意的地方,方便自己以后查阅学习。

Step1:

Copy custom font .ttf into frameworks/base/data/fonts

很简单,就是copy待添加的 Xxx.ttf 文件到 ../LINUX/android/frameworks/base/data/fonts 目录下

Step2:

Modify framworks/base/data/fonts/Android.mk ,Add your custom font into list of ‘font_src_files’

修改同目录下的Android.mk文件,将Xxx.ttf文件添加到‘font_src_files ’,具体如下:

font_src_files := \
Roboto-Regular.ttf \
….
AndroidClock_Solid.ttf \
Xxx.ttf \

这里要注意的是,‘font_src_files’在Android.mk文件中有多处定义,要注意比对,不要找错位置,一般在上面那段代码上面会有一段如下的注释:

# Build the rest of font files as prebuilt.
# $(1): The source file name in LOCAL_PATH.
# It also serves as the module name and the dest file name.

相信如果看明白了这段注释,也就该大概知道添加在这里的原因了吧。

Step3:

Modify frameworks/base/data/fonts/fonts.mk ,Add your custom font into list of PRODUCT_PACKAGES

修改同目录下的fonts.mk文件,在PRODUCT_PACKAGES末尾添加Xxx.ttf文件,如下:

PRODUCT_PACKAGES := \
DroidSansFallback.ttf \

AndroidClock_Solid.ttf \
Xxx.ttf \

Step4:

Rebuild 整个工程

注意这里最好是全编,我在作的时候,单编没有成功生效,但是在全编之后成功生效。

Step5:

Check 是否成功

Rebuild 之后,如果编译成功,在out/target/product/msm8610/system/fonts 会有Xxx.ttf文件,反之则可能并未成功。
注意:/product 下的/msm8610 这个目录跟平台有关,不同的平台会是不同的目录,例如有可能是
out/target/product/generic/system/fonts 等。

致此,就将添加自定义.ttf字库文件到系统的过程走完了。要注意的是,这些步骤仅仅只是将.ttf文件编译进了系统,至于怎么使用,那就是另外一回事了。

了解更多,可参考其他文章:
http://chenggoi.com/2015/01/07/Android_Fonts_Customizing/#添加字体

0 0