Android aosp rro 添加自定義字體

鏈接
原文
1、製作字體包
如需製作字體包,請執行以下操作:
將所有字體 ttf 文件添加到 vendor 分區中的字體包內。例如:

vendor/[oem]/fonts/[oem]-sans/

爲字體包創建 Android.mk 文件。例如:

vendor/[oem]/fonts/[oem]-[fontname]/Android.mk

確保模塊將安裝在 product 分區的 etc 文件夾中。爲此,請確認該模塊是否具有以下標誌:

LOCAL_MODULE_CLASS := ETC
LOCAL_PRODUCT_MODULE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts

上面提供的示例代碼展示了字體包模塊的完整定義。
爲字體包創建一個名爲 fonts.mk 的文件,然後將字體 ttf 文件添加到 PRODUCT_PACKAGES 中。例如:

vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk

例如:

PRODUCT_PACKAGES := \
[font name].ttf \

2、創建設備疊加層軟件包
創建一個名爲 fonts_customization.xml 的模塊,以供添加到 build 中。此模塊指向包含字體系列的 fonts_customization.xml 文件,並會調用所有字體包的 Makefile。例如:

vendor/[oem]/[device]_overlay/fonts/Android.mk

創建字體系列:

vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml

該文件的根級別必須是 fonts-modification 標記。爲此元素下的每個字體包添加字體系列。此外,請向每個字體系列添加 customizationType="new-named-family",並確保每個字體系列都具有 name 屬性。此名稱稍後將用於訪問相應的字體系列。必須將此文件添加到先前在 Android.mk 中定義的 fonts_customizations.xml 模塊內。
上面提供的示例包含有效的 fonts_customization.xml 文件。
創建 fonts.mk。例如:

vendor/[oem]/[device]_overlay/fonts/fonts.mk

在 PRODUCT_PACKAGES 標誌下添加 fonts_customization.xml。
調用先前創建的每個字體包。

$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)

將字體模塊添加到 PRODUCT_PACKAGES 下的 build 中,然後重新構建。相應字體將安裝到系統中。
驗證 ttf 字體文件是否位於設備上的 /product/fonts 文件夾中。
驗證 /product/etc/ 是否位於設備上的 fonts_customization.xml 文件夾中。
4、使用新的系統字體系列
如需使用新的系統字體系列,請使用以下代碼:

<style name="customstyle">
    <item name="android:fontFamily">customfontfamily</item>
</style>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章