Fügen Sie benutzerdefinierte Schriftarten hinzu

Sie können jetzt Runtime Resource Overlays (RROs) verwenden, um Schriftarten zu ändern. Indem Sie benutzerdefinierte Schriftarten hinzufügen, um ein Schriftartenpaket zu erstellen, können Sie Schriftarten in Designs verwenden und RROs verwenden, um die Anpassungen anzuwenden.

Erledigen Sie diese Aufgaben:

Eine Beispieldateistruktur und Beispieldateien werden in „custom-fonts.zip“ bereitgestellt. Laden Sie diese Datei herunter und extrahieren Sie sie dann lokal für Ihren eigenen Gebrauch.

Erstellen Sie ein Schriftartenpaket

So erstellen Sie ein Schriftartenpaket:

  1. Fügen Sie alle Schriftarten- ttf Dateien zum Schriftartenpaket in der vendor hinzu. Zum Beispiel:

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

  2. Erstellen Sie die Android.mk Datei für das Schriftartenpaket. Zum Beispiel:

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

  3. Stellen Sie sicher, dass das Modul in der product im Ordner etc installiert wird. Stellen Sie dazu sicher, dass das Modul über die folgenden Flags verfügt:
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
    

    Der oben bereitgestellte Beispielcode veranschaulicht eine vollständige Definition eines Schriftartenpaketmoduls.

  4. Erstellen Sie eine Datei mit dem Namen fonts.mk für das Schriftartenpaket und fügen Sie dann die Schriftarten ttf -Dateien zu PRODUCT_PACKAGES hinzu. Zum Beispiel:

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

    Zum Beispiel:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Erstellen Sie ein Geräte-Overlay-Paket

  1. Erstellen Sie ein Modul namens fonts_customization.xml , das dem Build hinzugefügt werden soll. Dieses Modul verweist auf die Datei fonts_customization.xml , die die Schriftfamilien enthält und die Make-Dateien aller Schriftpakete aufruft. Zum Beispiel:

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

  2. Erstellen Sie die Schriftfamilien:

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

    Die Stammebene der Datei muss ein Tag fonts-modification sein. Fügen Sie Schriftfamilien für jedes Schriftpaket unter diesem Element hinzu. Fügen Sie außerdem customizationType="new-named-family" zu jeder Schriftfamilie hinzu und stellen Sie sicher, dass jede über ein name verfügt. Dieser Name wird später für den Zugriff auf die Schriftfamilie verwendet. Diese Datei muss dem zuvor in Android.mk definierten Modul fonts_customizations.xml hinzugefügt werden.

    Das oben bereitgestellte Beispiel enthält eine gültige Datei fonts_customization.xml .

  3. Erstellen Sie fonts.mk . Zum Beispiel:

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

  4. Fügen Sie fonts_customization.xml unter dem Flag PRODUCT_PACKAGES hinzu.
  5. Rufen Sie jedes der zuvor erstellten Schriftartenpakete auf.

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

  6. Fügen Sie das Schriftartmodul zum Build unter PRODUCT_PACKAGES hinzu und erstellen Sie es dann neu. Die Schriftarten werden auf dem System installiert.
  7. Stellen Sie sicher, dass sich die ttf Schriftartendateien im Ordner /product/fonts auf dem Gerät befinden.
  8. Stellen Sie sicher, dass sich fonts_customization.xml in /product/etc/ auf dem Gerät befindet.

Verwenden Sie die neue Systemschriftfamilie

So verwenden Sie die neue Systemschriftfamilie:

<style name="customstyle">
    <item name="android:fontFamily">customfontfamily</item>
</style>