Benutzerdefinierte Schriftarten hinzufügen

Sie können jetzt Laufzeitressourcen-Overlays (RROs) verwenden, um Schriftarten zu ändern. Wenn Sie benutzerdefinierte Schriftarten hinzufügen, um ein Schriftpaket zu erstellen, können Sie Schriftarten in Themen verwenden und die Anpassungen mithilfe von RROs anwenden.

Führen Sie die folgenden Schritte aus:

Eine Beispieldateistruktur und Beispieldateien finden Sie in custom-fonts.zip. Laden Sie diese Datei herunter und extrahieren Sie sie lokal für Ihre eigene Verwendung.

Schriftpaket erstellen

So erstellen Sie ein Schriftpaket:

  1. Fügen Sie dem Schriftpaket in der Partition vendor alle Schriftdateien ttf hinzu. Beispiel:

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

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

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

  3. Das Modul muss in der Partition product im Ordner etc installiert werden. Prüfen Sie dazu, ob das Modul die folgenden Flags enthält:
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts

    Der obige Beispielcode zeigt eine vollständige Definition eines Schriftpaketmoduls.

  4. Erstellen Sie eine Datei mit dem Namen fonts.mk für das Schriftpaket und fügen Sie dann die Schriftdateien ttf zu PRODUCT_PACKAGES hinzu. Beispiel:

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

    Beispiel:

    PRODUCT_PACKAGES := \
    [font name].ttf \

Geräte-Overlay-Paket erstellen

  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 ruft die Make-Dateien aller Schriftpakete auf. 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 fonts-modification-Tag sein. Fügen Sie unter diesem Element Schriftfamilien für jedes Schriftpaket hinzu. Fügen Sie außerdem jeder Schriftfamilie customizationType="new-named-family" hinzu und achten Sie darauf, dass jede ein name-Attribut hat. Dieser Name wird später zum Zugriff auf die Schriftfamilie verwendet. Diese Datei muss dem fonts_customizations.xml-Modul hinzugefügt werden, das zuvor in Android.mk definiert wurde.

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

  3. Erstellen Sie fonts.mk. 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 Schriftpakete auf.

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

  6. Fügen Sie das Schriftmodul unter PRODUCT_PACKAGES zum Build hinzu und erstellen Sie ihn dann neu. Die Schriftarten werden auf dem System installiert.
  7. Prüfen Sie, ob sich die ttf-Schriftdateien auf dem Gerät im Ordner /product/fonts befinden.
  8. Prüfen Sie, ob fonts_customization.xml auf dem Gerät in /product/etc/ enthalten ist.

Neue Systemschriftfamilie verwenden

So verwenden Sie die neue Systemschriftfamilie:

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