Benutzerdefinierte Schriftarten hinzufügen

Sie können jetzt Laufzeitressourcen-Overlays (RROs) verwenden, um Schriftarten zu ändern. Durch Hinzufügen benutzerdefinierter Schriftarten verwenden, um ein Schriftpaket zu erstellen, können Sie Schriftarten in Designs verwenden und RROs Anpassungen.

Führen Sie die folgenden Schritte aus:

Eine Musterdateistruktur und Beispieldateien finden Sie in custom-fonts.zip Laden Sie diese Datei herunter und extrahieren Sie sie lokal zur eigenen Verwendung.

Schriftpaket erstellen

So erstellen Sie ein Schriftpaket:

  1. Fügen Sie alle Schriftartdateien ttf zum Schriftartpaket im Partition vendor. Beispiel:

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

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

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

  3. Achten Sie darauf, dass das Modul in der Partition product im etc-Ordner. Prüfen Sie dazu, ob das Modul die folgenden Flags hat:
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
    

    Der oben angegebene Beispielcode veranschaulicht eine vollständige Definition eines Schriftartpaketmoduls.

  4. Erstellen Sie eine Datei mit dem Namen fonts.mk für das Schriftartpaket und fügen Sie dann die Schriftart hinzu. ttf Dateien in PRODUCT_PACKAGES. Beispiel:

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

    Beispiel:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Geräte-Overlay-Paket erstellen

  1. Erstellen Sie ein Modul mit dem Namen fonts_customization.xml, das dem Build hinzugefügt werden soll. Dieses Modul verweist auf die Datei fonts_customization.xml, die die Schriftart enthält. Familien und ruft die Erstellungsdateien aller Schriftartpakete 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. Hinzufügen für die einzelnen Schriftpakete unter diesem Element. Fügen Sie außerdem customizationType="new-named-family" für jede Schriftfamilie und muss jedes ein name-Attribut haben. Dieser Name wird später für den Zugriff auf Schriftfamilie hinzu. Diese Datei muss dem fonts_customizations.xml hinzugefügt werden Modul, das zuvor in Android.mk definiert wurde.

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

  3. fonts.mk erstellen. 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 Schriftartpakete auf.

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

  6. Fügen Sie dem Build unter PRODUCT_PACKAGES das Schriftartmodul hinzu und erstellen Sie es dann neu. Die Schriftarten werden auf dem System installiert.
  7. Die ttf-Schriftartdateien müssen sich im /product/fonts-Ordner auf dem Gerät.
  8. fonts_customization.xml muss sich auf /product/etc/ auf der .

Neue Systemschriftart verwenden

So verwenden Sie die neue Systemschriftfamilie:

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