Schriftart als XML-Ressource hinzufügen

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:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner res und gehen Sie zu Neu > Android-Ressourcenverzeichnis. Das Fenster Neues Ressourcenverzeichnis wird angezeigt.
  2. 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.

    Ressourcenverzeichnis für Schriftarten hinzufügen

    Abbildung 1: Das Ressourcenverzeichnis für die Schriftarten wird hinzugefügt.

  3. Fügen Sie Ihre Schriftartdateien im Ordner font hinzu.

    Die folgende Ordnerstruktur generiert R.font.dancing_script, R.font.lobster und R.font.typo_graphica.

    Schriftartdateien im Ressourcenverzeichnis hinzufügen

    Abbildung 2: Die Schriftartdateien werden im Verzeichnis res/font hinzugefügt.

  4. Doppelklicken Sie auf eine Schriftartdatei, um eine Vorschau der Schriftarten der Datei im Editor anzuzeigen. Vorschau der Schriftartdatei

    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:

  1. 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.
  2. Geben Sie den Dateinamen ein und klicken Sie auf OK. Die neue XML-Schriftartenressource wird im Editor geöffnet.
  3. 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.
    1. 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.

    2. Maximieren Sie die Eigenschaft textAppearance und wählen Sie die Schriftart aus der Liste fontFamily aus.
    3. Schriftart in den Eigenschaften auswählen

      Abbildung 4: Wählen Sie die Schriftart im Fenster Eigenschaften aus.

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

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);