[英]Android: add custom fonts to system
我知道如何在应用程序中使用自定义字体,但我想做的是在系统范围内添加自定义字体,就像在 Windows 上添加新字体一样。 如果没有官方方法,我应该阅读android源代码的哪个模块? 我必须更改 android 源代码并构建它以支持自定义字体。
以下是将自定义字体添加到 Android 内置系统的步骤:
+ 将自定义字体 .ttf 复制到 frameworks/base/data/fonts
+ 修改framworks/base/data/fonts/Android.mk
将您的自定义字体添加到“font_src_files”列表中
font_src_files := \
Roboto-Regular.ttf \
....
AndroidClock_Solid.ttf \
<custom_font>.ttf \
+ 修改 frameworks/base/data/fonts/fonts.mk
将您的自定义字体添加到 PRODUCT_PACKAGES 列表中
PRODUCT_PACKAGES := \
DroidSansFallback.ttf \
...
AndroidClock_Solid.ttf \
<custom_font>.ttf \
+ 重建
注意:检查您的自定义字体是否存在于 out/target/product/generic/system/fonts 中。 如果是,则您的自定义字体已包含在系统中。 如果不是,请重新检查您的修改。
我正在开发 Android 5.1.1 Lollipop。
Nguyen的回答支持了我,但只是在某种程度上。 所以我必须编辑fonts.xml
和fallback_fonts.xml
文件(如Chef Pharaoh所评论的)。
fonts.xml
向<familyset>
元素的末尾添加以下几行。<family>
<font weight="400" style="normal"><custom_font>.ttf</font>
</family>
fallback_fonts.xml
向<familyset>
元素的末尾添加以下几行。<family>
<fileset>
<file><custom_font>.ttf</file>
</fileset>
</family>
(将<custom_font>
替换为您的自定义字体名称)
我发现这个链接有点帮助,它是中文的。
FYR 以下注释是关于文件fallback_fonts.xml
注意:为了与应用程序兼容,此文件是旧格式。 新的、更灵活的格式是 fonts.xml。 请保持两者同步,直到可以完全删除旧格式。
下载Helvetica.ttf文件,将此文件复制到assets文件夹并使用此代码。
Typeface font = Typeface.createFromAsset(getAssets(), "Helvetica.ttf");
your_textview_id.setTypeface(font);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.