[英]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.