Unter Android 8.0 (API-Ebene 26) werden Schriftarten in XML eingeführt, eine Funktion, die
können Sie Schriftarten
als Ressourcen verwenden. Sie können die Datei font
hinzufügen in
Ordner res/font/
, um Schriftarten als Ressourcen zu bündeln. Diese Schriftarten
werden in Ihrer R
-Datei kompiliert und sind automatisch verfügbar in
Android Studio Sie können über den Ressourcentyp font
auf die Schriftressourcen zugreifen. Für
Um auf eine Schriftartressource zuzugreifen,
Verwenden Sie @font/myfont
oder R.font.myfont
.
So verwenden Sie die Funktion "Schriftarten in XML" auf Geräten mit Android 4.1 (API-Level 16) und höher, verwenden Sie die Support Library 26.0. Weitere Informationen zur Verwendung der Supportbibliothek finden Sie im Verwenden Sie den Abschnitt „Supportbibliothek“.
Führen Sie die folgenden Schritte in Android aus, um Schriftarten als Ressourcen hinzuzufügen Studio:
- Klicken Sie mit der rechten Maustaste auf den Ordner res und gehen Sie zu Neu > Android-Ressourcenverzeichnis. Die Das Fenster Neues Ressourcenverzeichnis wird angezeigt.
- Wählen Sie in der Liste Ressourcentyp die Option Schriftart aus und klicken Sie auf
OK.
Hinweis: Der Name des Ressourcenverzeichnisses muss font ein.
Abbildung 1: Das Ressourcenverzeichnis für 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: Hinzufügen der Schriftartdateien im Verzeichnis
res/font
- Doppelklicken Sie auf eine Schriftartdatei, um eine Vorschau der Schriftarten im Editor anzuzeigen.
Abbildung 3: Vorschau der Schriftartdatei
Schriftfamilie erstellen
Eine Schriftfamilie besteht aus einer Reihe von Schriftartdateien sowie Details zu Stil und Stärke. In Android können Sie eine neue Schriftfamilie als XML-Ressource und -Zugriff erstellen. als einzelne Einheit, anstatt jeden Stil und jede Gewichtung und separate Ressourcen. So kann das System die richtige Schriftart auswählen, je nach verwendetem Textstil.
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 Schriftarten. Das Fenster Neue Ressourcendatei angezeigt wird. - Geben Sie den Dateinamen ein und klicken Sie auf OK. Neue Schriftartressource XML werden im Editor geöffnet.
- Schließen Sie alle Attribute für Schriftart, -stil und -stärke in das Feld
<font>
-Element. Der folgende XML-Code veranschaulicht, Schriftartattribute in der XML-Datei der Schriftressource:<?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 einem
Schriftfamilie, TextView
-Objekten oder in Stilen mithilfe der Methode
fontFamily
-Attribut.
Hinweis:Wenn Sie eine Schriftfamilie verwenden,
TextView
selbstständig, um den
Schriftartdateien dieser Familie.
Schriftarten zu einer TextView hinzufügen
Um eine Schriftart für ein TextView
festzulegen, führen Sie einen der folgenden Schritte aus:
Folgendes:
- Legen Sie in der Layout-XML-Datei für das Attribut
fontFamily
den Wert 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 die
TextView
- Wählen Sie eine Ansicht aus, um das Fenster Eigenschaften zu öffnen.
Hinweis:Das Fenster Properties (Eigenschaften) ist verfügbar. wenn der Designeditor geöffnet ist. Wählen Sie den Tab Design am unteren Rand des Fensters.
- Maximieren Sie die Eigenschaft textAppearance und wählen Sie dann die Schriftart aus. 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.
Die Layoutvorschau von Android Studio, die in Abbildung 5 ganz rechts zu sehen ist,
ermöglicht eine Vorschau des Schriftsatzes in TextView
.
![Vorschau von Schriftarten in der Layoutvorschau](https://developer.android.google.cn/static/guide/topics/ui/images/look-and-feel/fonts-in-xml/xml-font-preview.png?authuser=0000&hl=de)
Abbildung 5: Vorschau von Schriftarten wird in der Layoutvorschau angezeigt.
Schriftarten zu einem Stil hinzufügen
Öffne die Datei styles.xml
und lege die fontFamily
fest
der Schriftartdatei, 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
Rufen Sie zum programmatischen Abrufen von Schriftarten die Methode
getFont(int)
und geben Sie
Ressourcen-ID der Schriftart, die Sie abrufen möchten. Diese Methode gibt eine
Typeface
-Objekt. Obwohl das System die besten
von den Schriftarten“ aus, können Sie mithilfe der
setTypeface(android.graphics.Typeface, int)
zum Festlegen des Schriftbilds mit bestimmten Stilen.
Hinweis: Der TextView
dies für Sie tun.
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-Level 16) und höher.
Hinweis: Wenn Sie Schriftfamilien im XML-Layout über die Support Library deklarieren, app-Namespace, 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>
Rufen Sie zum programmatischen Abrufen von Schriftarten die Methode
ResourceCompat.getFont(Context, int)
-Methode und geben Sie an,
Instanz von Context
und der Ressourcen-ID.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);