Schriftart als XML-Ressource hinzufügen

Schreiben Sie jetzt
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Weitere Informationen zum Verwenden von Text in der Google-Konversation

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:

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

    Ressourcenverzeichnis für Schriftarten hinzufügen

    Abbildung 1: Fügen Sie das Verzeichnis mit den Schriftressourcen hinzu.

  3. Fügen Sie Ihre Schriftdateien in den Ordner font ein.

    Mit der folgenden Ordnerstruktur werden R.font.dancing_script, R.font.lobster und R.font.typo_graphica generiert.

    Schriftartdateien in das Ressourcenverzeichnis einfügen

    Abbildung 2. Hinzufügen der Schriftartdateien im Verzeichnis res/font

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

    Abbildung 3 Vorschau der Schriftdatei anzeigen

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:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner font und wählen Sie Neu > Schriftartressourcendatei aus. Das Fenster Neue Ressourcendatei wird angezeigt.
  2. Geben Sie den Dateinamen ein und klicken Sie auf OK. Die neue Schriftartressource XML wird im Editor geöffnet.
  3. 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.
    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 unten im Fenster den Tab Design aus.

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

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

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 in der Layoutvorschau ansehen

Abbildung 5: Vorschau von Schriftarten wird in der Layoutvorschau angezeigt.

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