Mit Android 8.0 (API-Level 26) werden Schriftarten in XML eingeführt. Mit dieser Funktion kannst du Schriftarten als Ressourcen verwenden. Sie können die Datei font
im Ordner res/font/
hinzufügen, um Schriftarten als Ressourcen zu bündeln. Diese Schriftarten werden in Ihrer R
-Datei kompiliert und sind automatisch in Android Studio verfügbar. Sie können mit dem Ressourcentyp font
auf die Schriftartenressourcen zugreifen. Für den Zugriff auf eine Schriftartressource können Sie beispielsweise @font/myfont
oder R.font.myfont
verwenden.
Wenn du die Funktion „Schriftarten im XML-Format“ auf Geräten mit Android 4.1 (API-Level 16) und höher verwenden möchtest, verwende die Support Library 26.0. Weitere Informationen zur Verwendung der Supportbibliothek finden Sie im Abschnitt Supportbibliothek verwenden.
Führe die folgenden Schritte in Android Studio aus, um Schriftarten als Ressourcen hinzuzufügen:
- Klicken Sie mit der rechten Maustaste auf den Ordner res und gehen Sie zu Neu > Android-Ressourcenverzeichnis. Das Fenster Neues Ressourcenverzeichnis wird angezeigt.
- Wählen Sie in der Liste Ressourcentyp die Option Schriftart aus und klicken Sie dann auf OK.
Hinweis: Der Name des Ressourcenverzeichnisses muss font lauten.
Abbildung 1: Das Ressourcenverzeichnis für die Schriftarten wird hinzugefügt.
- Fügen Sie Ihre Schriftartdateien im Ordner
font
hinzu.Die folgende Ordnerstruktur generiert
R.font.dancing_script
,R.font.lobster
undR.font.typo_graphica
.Abbildung 2: Die Schriftartdateien werden im Verzeichnis
res/font
hinzugefügt. - Doppelklicken Sie auf eine Schriftartdatei, um eine Vorschau der Schriftarten der Datei im Editor anzuzeigen.
Abbildung 3: Vorschau der Schriftartdatei:
Schriftfamilie erstellen
Eine Schriftfamilie besteht aus einer Reihe von Schriftarten mit Angaben zu Stil und Stärke. In Android können Sie eine neue Schriftfamilie als XML-Ressource erstellen und als einzelne Einheit darauf zugreifen, anstatt jeden Stil und jede Schriftstärke als separate Ressourcen zu verweisen. Auf diese Weise wählt das System die richtige Schriftart für den verwendeten Textstil aus.
Führen Sie die folgenden Schritte in Android Studio aus, um eine Schriftfamilie zu erstellen:
- Klicken Sie mit der rechten Maustaste auf den Ordner
font
und wählen Sie Neu > Ressourcendatei für die Schriftarten aus. Das Fenster Neue Ressourcendatei wird angezeigt. - Geben Sie den Dateinamen ein und klicken Sie auf OK. Die neue XML-Schriftartenressource wird im Editor geöffnet.
- Schließen Sie alle Schriftartdateien, den Stil und das Gewichtsattribut im Element
<font>
ein. Der folgende XML-Code zeigt das Hinzufügen von Schriftartattributen in den XML-Code der Schriftartressource:<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:android="http://schemas.android.com/apk/res/android"> <font android:fontStyle="normal" android:fontWeight="400" android:font="@font/lobster_regular" /> <font android:fontStyle="italic" android:fontWeight="400" android:font="@font/lobster_italic" /> </font-family>
Schriftarten in XML-Layouts verwenden
Verwenden Sie Ihre Schriftarten, entweder eine einzelne Schriftartdatei oder eine Schriftart aus einer Schriftfamilie, in TextView
-Objekten oder in Stilen mithilfe des Attributs fontFamily
.
Hinweis:Wenn Sie eine Schriftfamilie verwenden, wechselt der TextView
nach Bedarf automatisch so, dass die Schriftdateien aus dieser Familie verwendet werden.
Schriftarten zu TextView hinzufügen
Führen Sie einen der folgenden Schritte aus, um eine Schriftart für TextView
festzulegen:
- Legen Sie in der Layout-XML-Datei für das Attribut
fontFamily
die Schriftartdatei fest, auf die Sie zugreifen möchten.<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/lobster"/>
- Öffnen Sie das Fenster Eigenschaften, um die Schriftart für
TextView
festzulegen.- Wählen Sie eine Ansicht aus, um das Fenster Eigenschaften zu öffnen.
Hinweis:Das Fenster Eigenschaften ist nur verfügbar, wenn der Designeditor geöffnet ist. Wählen Sie am unteren Fensterrand den Tab Design aus.
- Maximieren Sie die Eigenschaft textAppearance und wählen Sie die Schriftart aus der Liste fontFamily aus.
-
Abbildung 4: Wählen Sie die Schriftart im Fenster Eigenschaften aus.
- Wählen Sie eine Ansicht aus, um das Fenster Eigenschaften zu öffnen.
In der Layoutvorschau von Android Studio, die im Bereich ganz rechts in Abbildung 5 zu sehen ist, können Sie eine Vorschau der in TextView
festgelegten Schriftart ansehen.
![Vorschau von Schriftarten in der Layoutvorschau](https://developer.android.com/static/guide/topics/ui/images/look-and-feel/fonts-in-xml/xml-font-preview.png?authuser=6&hl=de)
Abbildung 5: Vorschau von Schriftarten in der Layoutvorschau
Schriftarten zu einem Stil hinzufügen
Öffnen Sie die Datei styles.xml
und legen Sie für das Attribut fontFamily
die Schriftartdatei fest, auf die Sie zugreifen möchten.
<style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item> </style>
Schriftarten programmatisch verwenden
Wenn Sie Schriftarten programmatisch abrufen möchten, rufen Sie die Methode getFont(int)
auf und geben Sie die Ressourcen-ID der gewünschten Schriftart an. Diese Methode gibt ein Typeface
-Objekt zurück. Obwohl das System den besten Stil für Sie aus den Informationen zur Schriftart auswählt, können Sie mit der Methode setTypeface(android.graphics.Typeface, int)
bestimmte Stile für das Schriftbild festlegen.
Hinweis:Das TextView
erledigt dies für Sie.
Kotlin
val typeface = resources.getFont(R.font.myfont) textView.typeface = typeface
Java
Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);
Support Library verwenden
Die Support Library 26.0 unterstützt Schriftarten in XML auf Geräten mit Android 4.1 (API-Level 16) und höher.
Hinweis: Wenn Sie Schriftfamilien im XML-Layout über die Supportbibliothek deklarieren, verwenden Sie den Namespace app, damit die Schriftarten geladen werden.
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto"> <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/> <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" /> </font-family>
Wenn Sie Schriftarten programmatisch abrufen möchten, rufen Sie die Methode ResourceCompat.getFont(Context, int)
auf und geben Sie eine Instanz von Context
und die Ressourcen-ID an.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);