Ressourcen zu Schriftarten

Mit einer Schriftartressource wird eine benutzerdefinierte Schriftart definiert, die Sie in Ihrer Anwendung verwenden können. Schriftarten können einzelne Schriftartdateien oder eine Sammlung von Schriftartdateien sein, die als Schriftartfamilie bezeichnet werden und im XML-Format definiert sind.

Hier erfährst du auch, wie du Schriftarten im XML-Format definierst oder herunterladbare Schriftarten verwendest.

Gebündelte Schriftart

Sie können Schriftarten als Ressourcen in einer App bündeln. Schriftarten werden in der Datei R kompiliert und sind im System automatisch als Ressource verfügbar. Sie können dann mithilfe des Ressourcentyps font auf diese Schriftarten zugreifen.

Dateispeicherort:
res/font/filename.ttf (.ttf, .ttc, .otf oder .xml)
Der Dateiname wird als Ressourcen-ID verwendet.
Ressourcenreferenz:
Im XML-Format: @[package:]font/font_name
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<font-family>
  <font
    android:font="@[package:]font/font_to_include"
    android:fontStyle=["normal" | "italic"]
    android:fontWeight="weight_value" />
</font-family>
Elemente:
<font-family>
Erforderlich. Das muss der Root-Knoten sein.

Keine Attribute.

<font>
Definiert eine einzelne Schriftart innerhalb einer Familie. Enthält keine untergeordneten Knoten.

Attribute:

android:fontStyle
Keyword. Definiert den Schriftstil. Dieses Attribut wird verwendet, wenn die Schriftart in den Schriftart-Stack geladen wird, und überschreibt alle Stilinformationen in den Kopfzeilentabellen der Schriftart. Wenn Sie das Attribut nicht angeben, verwendet die Anwendung den Wert aus den Headertabellen der Schriftart. Der konstante Wert ist entweder normal oder italic.
android:fontWeight
Ganzzahl. Die Stärke der Schriftart. Dieses Attribut wird verwendet, wenn die Schriftart in den Schriftart-Stack geladen wird, und überschreibt alle Gewichtungsangaben in den Kopfzeilentabellen der Schriftart. Der Attributwert muss ein Vielfaches von 100 zwischen 100 und 900 sein. Wenn Sie das Attribut nicht angeben, verwendet die Anwendung den Wert aus den Überschriftentabellen der Schriftart. Die häufigsten Werte sind 400 für reguläre Gewichtung und 700 für Fettdruck.
Beispiel:
XML-Datei gespeichert unter res/font/lobster.xml:
<?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>

XML-Datei in res/layout/ gespeichert, die die Schriftart auf eine TextView anwendet:

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />

Schriftart zum Herunterladen

In einer herunterladbaren Schriftartressource wird eine benutzerdefinierte Schriftart definiert, die Sie in einer App verwenden können. Diese Schriftart ist in der App selbst nicht verfügbar. Stattdessen wird die Schriftart von einem Schriftartanbieter abgerufen.

Dateispeicherort:
res/font/filename.xml Der Dateiname ist die Ressourcen-ID.
Ressourcenreferenz:
Im XML-Format:@[package:]font/font_name
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<font-family
    android:fontProviderAuthority="authority"
    android:fontProviderPackage="package"
    android:fontProviderQuery="query"
    android:fontProviderCerts="@[package:]array/array_resource" />
Elemente:
<font-family>
Erforderlich. Das muss der Root-Knoten sein.

Attribute:

android:fontProviderAuthority
String Erforderlich. Die Autorität des Schriftartanbieters, der die Anfrage für eine Schriftart definiert.
android:fontProviderPackage
String Erforderlich. Der Paketname des Schriftartanbieters, der für die Anfrage verwendet werden soll. Damit wird die Identität des Anbieters überprüft.
android:fontProviderQuery
String Erforderlich. Die Stringabfrage der Schriftart. Informationen zum Format dieses Strings finden Sie in der Dokumentation Ihres Schriftartenanbieters.
android:fontProviderCerts
Array-Ressource Erforderlich. Definiert die Gruppen von Hashes für die Zertifikate, die zum Signieren dieses Anbieters verwendet werden. Dies wird verwendet, um die Identität des Anbieters zu überprüfen, und ist nur erforderlich, wenn der Anbieter nicht Teil des System-Images ist. Der Wert kann auf eine einzelne Liste (eine String-Array-Ressource) oder eine Liste von Listen (eine Array-Ressource) verweisen, wobei jede einzelne Liste eine Sammlung von Signatur-Hashes darstellt. Diese Werte finden Sie in der Dokumentation Ihres Schriftartanbieters.
Beispiel:
XML-Datei gespeichert unter res/font/lobster.xml:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    android:fontProviderAuthority="com.example.fontprovider.authority"
    android:fontProviderPackage="com.example.fontprovider"
    android:fontProviderQuery="Lobster"
    android:fontProviderCerts="@array/certs">
</font-family>

XML-Datei, die in res/values/ gespeichert ist und das Zertifikat-Array definiert:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="certs">
      <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
    </string-array>
</resources>

XML-Datei in res/layout/ gespeichert, die die Schriftart auf eine TextView anwendet:

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />