Herunterladbare Schriftarten verwenden
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Compose ausprobieren
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Informationen zur Verwendung von Text in Compose
Mit der Funktion „Herunterladbare Schriftarten“ können APIs Schriftarten von einer Anbieteranwendung anfordern, anstatt Dateien in die App einzubinden oder die App Schriftarten herunterladen zu lassen. Herunterladbare Schriftarten sind auf Geräten mit Android 14 (API-Level 34) und höher über die AndroidX Core-Bibliothek verfügbar.
Die App-Größe wird reduziert, was die Erfolgsquote bei der App-Installation erhöht.
Verbessert die allgemeine Systemintegrität, da mehrere Apps dieselbe Schriftart über einen Anbieter gemeinsam nutzen können. So sparen Nutzer mobile Daten, Arbeitsspeicher und Speicherplatz. In diesem Modell wird die Schriftart bei Bedarf über das Netzwerk abgerufen.
Praktische Erfahrungen mit herunterladbaren Schriftarten kannst du mit der Beispiel-App DownloadableFonts sammeln.
Wie funktionieren herunterladbare Schriftarten?
Ein Schriftartenanbieter ist eine Anwendung, die Schriftarten abruft und lokal im Cache speichert, damit andere Apps Schriftarten anfordern und freigeben können. Die folgende Abbildung veranschaulicht den Vorgang.
Abbildung 1. Herunterladbare Schriftarten
Grundlagen
Sie können die Funktion „Herunterladbare Schriftarten“ auf die folgenden Arten verwenden, die in späteren Abschnitten ausführlich beschrieben werden:
Herunterladbare Schriftarten mit Android Studio und Google Play-Diensten verwenden
Sie können Ihre Anwendung so einrichten, dass Schriftarten mit Android Studio 3.0 oder höher heruntergeladen werden. Für den Einstieg in die Funktionen für herunterladbare Schriftarten können Sie den Schriftartenanbieter der Google Play-Dienste verwenden.
Wählen Sie im Layout-Editor ein TextView aus. Wählen Sie dann unter Attribute die Option fontFamily > Weitere Schriftarten aus.
Abbildung 2.Layout-Editor verwenden
Das Fenster Ressourcen wird angezeigt.
Wählen Sie im Menü Quelle die Option Google Fonts aus.
Wählen Sie im Feld Schriftarten im Bereich „Herunterladbar“ eine Schriftart aus.
Wählen Sie Herunterladbare Schriftart erstellen aus und klicken Sie auf OK.
Abbildung 3. Im Fenster Ressourcen eine Schriftart auswählen
Android Studio generiert automatisch die relevanten XML-Dateien, die zum korrekten Rendern der Schriftart in Ihrer App erforderlich sind.
Ab Android 8.0 (API-Level 26) bietet AndroidX Core vollständige Unterstützung für herunterladbare Schriftarten. Weitere Informationen zur Verwendung der AndroidX Core-Bibliothek finden Sie auf dieser Seite im Abschnitt Herunterladbare Schriftarten mit AndroidX Core verwenden.
Wenn Sie die Funktion „Herunterladbare Schriftarten“ programmatisch verwenden möchten, müssen Sie mit zwei wichtigen Klassen interagieren:
FontsContractCompat:
Mit dieser Klasse können Sie ein neues Typeface-Objekt basierend auf der Schriftartenanfrage erstellen.
Ihre App ruft Schriftarten mithilfe der FontsContract API vom Schriftartanbieter ab. Jeder Anbieter hat eigene Einschränkungen hinsichtlich der unterstützten Android-Versionen und der Abfragesprache. Weitere Informationen zu den Android-Versionen und zum Abfrageformat finden Sie in der Dokumentation Ihres Anbieters.
So laden Sie eine Schriftart herunter:
Erstelle eine Instanz der Klasse android.graphics.fonts.FontRequest, um die Schriftart vom Anbieter anzufordern. Übergeben Sie die folgenden Parameter, um eine Anfrage zu erstellen:
Die Zertifizierungsstelle des Schriftartenanbieters.
Das Paket des Schriftartenanbieters, um die Identität des Anbieters zu bestätigen.
Die Stringabfrage der Schriftart. Weitere Informationen zu Abfrageformaten finden Sie in der Dokumentation Ihres Schriftartenanbieters, z. B. Google Fonts.
Eine Liste mit Hash-Sätzen für die Zertifikate, um die Identität des Anbieters zu bestätigen.
Überschreiben Sie die Methode onTypefaceRetrieved(), um anzugeben, dass die Schriftartenanfrage abgeschlossen ist. Geben Sie die abgerufene Schriftart als Parameter an.
Mit dieser Methode können Sie die Schriftart nach Bedarf festlegen. Sie können beispielsweise die Schriftart für ein TextView festlegen.
Überschreiben Sie die Methode onTypefaceRequestFailed(), um Informationen zu Fehlern im Prozess der Schriftartenanfrage zu erhalten. Weitere Informationen zu Fehlercodes finden Sie unter Fehlercodekonstanten.
Rufe die Methode FontsContract.requestFont() auf, um die Schriftart vom Schriftartanbieter abzurufen. Die Methode initiiert eine Prüfung, um festzustellen, ob die Schriftart im Cache vorhanden ist. Wenn die Schriftart nicht lokal verfügbar ist, wird der Schriftartanbieter aufgerufen, die Schriftart asynchron abgerufen und das Ergebnis an den Callback übergeben. Übergeben Sie die folgenden Parameter:
Eine Instanz der Klasse android.graphics.fonts.FontRequest
Ein Callback, um die Ergebnisse der Schriftartenanfrage zu erhalten
Ein Handler zum Abrufen von Schriftarten in einem Thread
Der folgende Beispielcode veranschaulicht den gesamten Prozess für herunterladbare Schriftarten:
Kotlin
valrequest=FontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs)valcallback=object:FontsContract.FontRequestCallback(){overridefunonTypefaceRetrieved(typeface:Typeface){// Your code to use the font goes here....}overridefunonTypefaceRequestFailed(reason:Int){// Your code to deal with the failure goes here....}}FontsContract.requestFonts(context,request,handler,null,callback)
Java
FontRequestrequest=newFontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs);FontsContract.FontRequestCallbackcallback=newFontsContract.FontRequestCallback(){@OverridepublicvoidonTypefaceRetrieved(Typefacetypeface){// Your code to use the font goes here....}@OverridepublicvoidonTypefaceRequestFailed(intreason){// Your code to deal with the failure goes here....}};FontsContract.requestFonts(context,request,handler,null,callback);
Weitere Informationen zum Herunterladen einer Schriftart von einem Schriftartanbieter finden Sie in der Beispiel-App DownloadableFonts.
Herunterladbare Schriftarten mit AndroidX Core verwenden
AndroidX Core bietet Unterstützung für die Funktion „Herunterladbare Schriftarten“ auf Geräten mit Android 14 (API-Level 34) oder höher. Das Paket androidx.core.provider enthält die Klassen FontsContractCompat und FontRequest, um die abwärtskompatible Unterstützung für herunterladbare Schriftarten zu implementieren. Die AndroidX-Klassen enthalten Methoden, die den Framework-Methoden ähneln. Das Herunterladen von Schriftarten ähnelt dem Verfahren, das auf dieser Seite im Abschnitt Herunterladbare Schriftarten programmatisch verwenden beschrieben wird.
Wenn Sie Schriftarten mit AndroidX herunterladen möchten, importieren Sie die Klassen FontsContractCompat und FontRequest aus dem Paket androidx.core.provider. Erstellen Sie Instanzen dieser Klassen anstelle der Framework-Klassen FontsContract und android.graphics.fonts.FontRequest.
AndroidX Core-Abhängigkeit hinzufügen
Wenn Sie die Klassen FontsContractCompat und FontRequest verwenden möchten, müssen Sie die Klassenpfadabhängigkeiten Ihres Anwendungsprojekts in Ihrer Entwicklungsumgebung ändern.
Wenn Sie AndroidX Core zu Ihrem Anwendungsprojekt hinzufügen möchten, fügen Sie der Datei build.gradle Ihrer App die folgende Abhängigkeit hinzu:
Herunterladbare Schriftarten als Ressourcen in XML verwenden
Android 8.0 (API-Ebene 26) und AndroidX Core bieten eine schnellere und bequemere Möglichkeit, eine benutzerdefinierte Schriftart als Ressource im XML-Layout zu deklarieren. Das bedeutet, dass die Schriftart nicht als Asset gebündelt werden muss. Sie können eine benutzerdefinierte Schriftart für Ihr gesamtes Design definieren. Das verbessert die Nutzerfreundlichkeit, wenn mehrere Schriftstärken und ‑formatierungen wie fett, mittel oder hell verfügbar sind.
Erstellen Sie im Ordner res/font eine neue XML-Datei.
Fügen Sie ein <font-family>-Stammelement hinzu und legen Sie die schriftartbezogenen Attribute fest, wie in der folgenden XML-Beispieldatei gezeigt:
Verweisen Sie in der XML-Layoutdatei auf die Datei als @font/font_file_name. Sie können die Datei mit der Methode getFont() auch programmatisch abrufen, z. B. getFont(R.font.font_file_name).
Schriftarten im Manifest vorab deklarieren
Das Aufblähen des Layouts und das Abrufen von Ressourcen sind synchrone Aufgaben. Standardmäßig wird beim ersten Versuch, Schriftarten abzurufen, eine Anfrage an den Schriftartenanbieter gesendet. Dadurch erhöht sich die Zeit für das erste Layout. Um die Verzögerung zu vermeiden, können Sie Schriftarten, die abgerufen werden müssen, in Ihrem Manifest vorab deklarieren.
Nachdem das System die Schriftart vom Anbieter abgerufen hat, ist sie sofort verfügbar. Wenn das Abrufen der Schriftart länger als erwartet dauert, bricht das System den Abrufvorgang ab und verwendet die Standardschriftart.
So deklarieren Sie Schriftarten im Manifest vorab:
Erstelle ein Ressourcen-Array in res/values/arrays.xml und deklariere die Schriftarten, die du vorab abrufen möchtest.
Wenn ein Schriftartanbieter nicht vorinstalliert ist oder wenn Sie die AndroidX Core-Bibliothek verwenden, deklarieren Sie die Zertifikate, mit denen der Schriftartanbieter signiert ist. Das System verwendet die Zertifikate, um die Identität des Schriftartenanbieters zu bestätigen.
Führen Sie die folgenden Schritte aus, um Zertifikate hinzuzufügen:
Erstellen Sie ein String-Array mit den Zertifikatsdetails. Weitere Informationen zu Zertifikatsdetails finden Sie in der Dokumentation Ihres Schriftartenanbieters.
Legen Sie das Attribut fontProviderCerts auf das Array fest.
android:fontProviderCerts="@array/certs"
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2026-10-24 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2026-10-24 (UTC)."],[],[]]