繁体   English   中英

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

[英]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.xmlfallback_fonts.xml文件(如Chef Pharaoh所评论的)。

  • 先做Nguyen解释的步骤。
  • 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM