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:
- Fügen Sie alle Schriftartdateien
ttf
zum Schriftartpaket im Partitionvendor
. Beispiel:vendor/[oem]/fonts/[oem]-sans/
- Erstellen Sie die Datei
Android.mk
für das Schriftartpaket. Beispiel:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Achten Sie darauf, dass das Modul in der Partition
product
imetc
-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.
- Erstellen Sie eine Datei mit dem Namen
fonts.mk
für das Schriftartpaket und fügen Sie dann die Schriftart hinzu.ttf
Dateien inPRODUCT_PACKAGES
. Beispiel:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Beispiel:
PRODUCT_PACKAGES := \ [font name].ttf \
Geräte-Overlay-Paket erstellen
- Erstellen Sie ein Modul mit dem Namen
fonts_customization.xml
, das dem Build hinzugefügt werden soll. Dieses Modul verweist auf die Dateifonts_customization.xml
, die die Schriftart enthält. Familien und ruft die Erstellungsdateien aller Schriftartpakete auf. Beispiel:vendor/[oem]/[device]_overlay/fonts/Android.mk
- 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ßerdemcustomizationType="new-named-family"
für jede Schriftfamilie und muss jedes einname
-Attribut haben. Dieser Name wird später für den Zugriff auf Schriftfamilie hinzu. Diese Datei muss demfonts_customizations.xml
hinzugefügt werden Modul, das zuvor inAndroid.mk
definiert wurde.Das oben bereitgestellte Beispiel enthält eine gültige
fonts_customization.xml
-Datei. fonts.mk
erstellen. Beispiel:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Fügen Sie
fonts_customization.xml
unter dem FlagPRODUCT_PACKAGES
hinzu. - Rufen Sie jedes der zuvor erstellten Schriftartpakete auf.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Fügen Sie dem Build unter
PRODUCT_PACKAGES
das Schriftartmodul hinzu und erstellen Sie es dann neu. Die Schriftarten werden auf dem System installiert. - Die
ttf
-Schriftartdateien müssen sich im/product/fonts
-Ordner auf dem Gerät. 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>