Mit Android 8.0 (API-Ebene 26) werden Schriftarten in XML eingeführt. Mit dieser Funktion können Sie Schriftarten als Ressourcen verwenden. Sie können die Datei font
dem 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 über den Ressourcentyp font
auf die Schriftressourcen zugreifen. Für den Zugriff auf eine Schriftartressource verwenden Sie beispielsweise @font/myfont
oder R.font.myfont
.
Wenn du die Funktion „Schriftarten in XML“ 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 Support-Bibliothek finden Sie im Abschnitt Support-Bibliothek verwenden.
So fügen Sie Schriftarten als Ressourcen hinzu:
- Klicken Sie mit der rechten Maustaste auf den Ordner res und wechseln Sie zu Neu > Android-Ressourcenverzeichnis. Das Fenster Neues Ressourcenverzeichnis wird angezeigt.
- Wählen Sie in der Liste Ressourcentyp die Option Schrift aus und klicken Sie dann auf OK.
Hinweis: Der Name des Ressourcenverzeichnisses muss font lauten.
- Fügen Sie Ihre Schriftdateien in den Ordner
font
ein.Mit der folgenden Ordnerstruktur werden
R.font.dancing_script
,R.font.lobster
undR.font.typo_graphica
generiert. - Doppelklicken Sie auf eine Schriftartdatei, um eine Vorschau der Schriftarten im Editor anzuzeigen.
Schriftfamilie erstellen
Eine Schriftfamilie besteht aus einer Reihe von Schriftartdateien mit Details zu Stil und Stärke. In Android kannst du eine neue Schriftfamilie als XML-Ressource erstellen und als eine Einheit darauf zugreifen, anstatt jeden Stil und jede Schriftstärke als separate Ressourcen zu referenzieren. So lässt du das System die richtige Schriftart basierend auf dem verwendeten Textstil auswählen.
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 > Schriftartressourcendatei aus. Das Fenster Neue Ressourcendatei wird angezeigt. - Geben Sie den Dateinamen ein und klicken Sie auf OK. Die neue Schriftartressource XML wird im Editor geöffnet.
- Setzen Sie jedes Schriftdatei-, Stil- und Gewichtsattribut in das
<font>
-Element. Der folgende XML-Code zeigt, wie schriftbezogene Attribute in der XML-Datei der Schriftressource hinzugefügt werden:<?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 in einer einzelnen Schriftartdatei oder einer Schriftart aus einer Schriftfamilie, in TextView
-Objekten oder in Stilen mithilfe des Attributs fontFamily
.
Hinweis:Wenn Sie eine Schriftfamilie verwenden, wechselt TextView
bei Bedarf von selbst, um die Schriftartdateien dieser Familie zu verwenden.
Schriftarten zu einer TextView hinzufügen
So legen Sie eine Schriftart für eine TextView
fest:
- Legen Sie in der Layout-XML-Datei das Attribut
fontFamily
auf die Schriftdatei 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 unten im Fenster den Tab Design aus.
- Maximieren Sie die Eigenschaft textAppearance und wählen Sie die Schriftart in der Liste fontFamily aus.
- Wählen Sie eine Ansicht aus, um das Fenster Eigenschaften zu öffnen.
In der Android Studio-Layoutvorschau, die in Abbildung 5 im rechten Bereich zu sehen ist, können Sie sich eine Vorschau der in der TextView
festgelegten Schriftart ansehen.
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 Schriftart an, die Sie abrufen möchten. Diese Methode gibt ein Typeface
-Objekt zurück. Das System wählt zwar anhand der Informationen zu den Schriftarten den besten Stil für Sie aus, Sie können aber die Methode setTypeface(android.graphics.Typeface, int)
verwenden, um den Schriftschnitt mit bestimmten Stilen festzulegen.
Hinweis: Das TextView
übernimmt 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);
Supportbibliothek verwenden
Die Support Library 26.0 unterstützt Schriftarten in XML auf Geräten mit Android 4.1 (API-Ebene 16) und höher.
Hinweis: Wenn Sie Schriftfamilien im XML-Layout über die Support Library deklarieren, verwenden Sie den Namensraum app, damit Ihre 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
sowie die Ressourcen-ID an.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);