Android:向系统添加自定义字体

时间:2012-03-09 01:39:10

标签: android fonts

我知道如何在应用中使用自定义字体,但我想要做的是在系统范围内添加自定义字体,就像在Windows上添加新字体一样。如果没有官方方式,我应该阅读哪个模块的android源代码?我必须更改android源代码并构建它以支持自定义字体。

3 个答案:

答案 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.xmlfallback_fonts.xml个文件(由Chef Pharaoh评论)。

  • 首先执行步骤Nguyen explained
  • 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。请保持两者同步,直到遗产       格式可以完全删除。