我知道如何在应用中使用自定义字体,但我想要做的是在系统范围内添加自定义字体,就像在Windows上添加新字体一样。如果没有官方方式,我应该阅读哪个模块的android源代码?我必须更改android源代码并构建它以支持自定义字体。
答案 0 :(得分:10)
以下是将自定义字体添加到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 \
+修改框架/ base / data / fonts / fonts.mk
将自定义字体添加到PRODUCT_PACKAGES列表
PRODUCT_PACKAGES := \
DroidSansFallback.ttf \
...
AndroidClock_Solid.ttf \
<custom_font>.ttf \
+重建
注意:检查您的自定义字体是否存在于out / target / product / generic / system / fonts中。如果是,您的自定义字体已包含在系统中。如果不是,请重新检查您的修改。
答案 1 :(得分:2)
下载 Helvetica.ttf 文件,将此文件复制到资产文件夹并使用此代码。
Typeface font = Typeface.createFromAsset(getAssets(), "Helvetica.ttf");
your_textview_id.setTypeface(font);
答案 2 :(得分:1)
我正在使用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>
)
我发现这个link有点帮助,而且是中文的。
FYR以下注释是关于文件fallback_fonts.xml
注意:此文件是旧版格式,用于与应用兼容。新的, 更灵活的格式是fonts.xml。请保持两者同步,直到遗产 格式可以完全删除。