Ressources de police

Une ressource de police définit une police personnalisée que vous pouvez utiliser dans votre application. Les polices peuvent être des fichiers de police individuels ou un ensemble de fichiers de police, appelé famille de polices et défini en XML.

Découvrez également comment définir des polices en XML ou utilisez des polices téléchargeables.

Police groupée

Vous pouvez regrouper les polices en tant que ressources dans une application. Les polices sont compilées dans le fichier R et sont automatiquement disponibles en tant que ressource dans le système. Vous pouvez ensuite accéder à ces polices à l'aide du type de ressource font.

Emplacement du fichier :
res/font/filename.ttf (.ttf, .ttc, .otf ou .xml)
Le nom de fichier est utilisé comme ID de ressource.
Référence de la ressource :
En XML : @[package:]font/font_name
syntaxe :
<?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>
Éléments :
<font-family>
Obligatoire. Il doit s'agir du nœud racine.

Aucun attribut.

<font>
Définit une seule police dans une famille. Ne contient aucun nœud enfant.

Attributs :

android:fontStyle
Mot clé. Définit le style de la police. Cet attribut est utilisé lorsque la police est chargée dans la pile de polices et remplace tous les paramètres de style dans les tableaux d'en-tête de police. Si vous ne le spécifiez pas, l'application utilise la valeur des tableaux d'en-tête de police. La valeur constante est normal ou italic.
android:fontWeight
Nombre entier. Épaisseur de la police. Cet attribut est utilisé lorsque la police est chargée dans la pile de polices et remplace tous les paramètres de pondération dans les tableaux d'en-tête de police. Sa valeur doit être un multiple de 100 compris entre 100 et 900 inclus. Si vous ne spécifiez pas cet attribut, l'application utilise la valeur des tableaux d'en-tête de police. Les valeurs les plus courantes sont 400 pour l'épaisseur standard et 700 pour les caractères gras.
Exemple :
Fichier XML enregistré sous 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>

Fichier XML enregistré dans res/layout/ qui applique la police à un élément TextView :

<?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!" />

Police téléchargeable

Une ressource de police téléchargeable définit une police personnalisée que vous pouvez utiliser dans une application. Cette police n'est pas disponible dans l'application elle-même, mais récupérée à partir d'un fournisseur de polices.

Emplacement du fichier :
res/font/filename.xml Le nom de fichier est l'ID de la ressource.
Référence de la ressource :
En XML : @[package:]font/font_name
syntaxe :
<?xml version="1.0" encoding="utf-8"?>
<font-family
    android:fontProviderAuthority="authority"
    android:fontProviderPackage="package"
    android:fontProviderQuery="query"
    android:fontProviderCerts="@[package:]array/array_resource" />
Éléments :
<font-family>
Obligatoire. Il doit s'agir du nœud racine.

attributs :

android:fontProviderAuthority
Chaîne. Obligatoire. Autorité du fournisseur de polices qui définit la requête de police.
android:fontProviderPackage
Chaîne. Obligatoire. Nom du package du fournisseur de polices à utiliser pour la requête. Cette information permet de vérifier l'identité du fournisseur.
android:fontProviderQuery
Chaîne. Obligatoire. Requête de chaîne de la police. Consultez les documents de votre fournisseur de polices pour connaître le format de cette chaîne.
android:fontProviderCerts
Ressource de tableau. Obligatoire. Définit les ensembles de hachages des certificats utilisés pour signer ce fournisseur. Cette information est utilisée pour vérifier l'identité du fournisseur. Elle n'est requise que si le fournisseur ne fait pas partie de l'image système. La valeur peut désigner une seule liste (ressource de tableau de chaînes) ou une liste de listes (ressource de tableau), où chaque liste représente un ensemble de hachages de signature. Consultez les documents de votre fournisseur de polices pour connaître ces valeurs.
Exemple :
Fichier XML enregistré sous 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>

Fichier XML enregistré dans res/values/, qui définit le tableau de certificats :

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

Fichier XML enregistré dans res/layout/ qui applique la police à un élément TextView :

<?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!" />