簡體   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