Ajouter des polices personnalisées

Vous pouvez désormais utiliser des superpositions de ressources d'exécution (RRO) pour modifier les polices. En ajoutant des polices personnalisées pour créer un package de polices, vous pouvez utiliser des polices dans des thèmes et des RRO pour appliquer les personnalisations.

Effectuez les tâches suivantes:

Un exemple de structure de fichiers et des exemples de fichiers sont fournis dans custom-fonts.zip. Téléchargez et extrayez ce fichier localement pour votre propre usage.

Créer un package de polices

Pour créer un package de polices:

  1. Ajoutez tous les fichiers ttf de police au package de polices dans la partition vendor. Exemple :

    vendor/[oem]/fonts/[oem]-sans/

  2. Créez le fichier Android.mk pour le package de polices. Exemple :

    vendor/[oem]/fonts/[oem]-[fontname]/Android.mk

  3. Assurez-vous que le module sera installé dans la partition product du dossier etc. Pour ce faire, vérifiez que le module comporte les indicateurs suivants:
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts

    L'exemple de code fourni ci-dessus illustre une définition complète d'un module de package de polices.

  4. Créez un fichier nommé fonts.mk pour le package de polices, puis ajoutez les fichiers ttf de polices à PRODUCT_PACKAGES. Exemple :

    vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk

    Exemple :

    PRODUCT_PACKAGES := \
    [font name].ttf \

Créer un package de superposition d'appareil

  1. Créez un module appelé fonts_customization.xml à ajouter au build. Ce module pointe vers le fichier fonts_customization.xml contenant les familles de polices et appelle les fichiers de compilation de tous les packages de polices. Exemple :

    vendor/[oem]/[device]_overlay/fonts/Android.mk

  2. Créez les familles de polices:

    vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml

    Le niveau racine du fichier doit être une balise fonts-modification. Ajoutez des familles de polices pour chacun des packages de polices sous cet élément. De plus, ajoutez customizationType="new-named-family" à chaque famille de polices et assurez-vous que chacune dispose d'un attribut name. Ce nom est utilisé ultérieurement pour accéder à la famille de polices. Ce fichier doit être ajouté au module fonts_customizations.xml défini précédemment dans Android.mk.

    L'exemple fourni ci-dessus contient un fichier fonts_customization.xml valide.

  3. Créez fonts.mk. Exemple :

    vendor/[oem]/[device]_overlay/fonts/fonts.mk

  4. Ajoutez fonts_customization.xml sous l'indicateur PRODUCT_PACKAGES.
  5. Appelez chacun des packages de polices créés précédemment.

    $(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)

  6. Ajoutez le module de police à la compilation sous PRODUCT_PACKAGES, puis effectuez une nouvelle compilation. Les polices seront installées sur le système.
  7. Vérifiez que les fichiers de polices ttf se trouvent dans le dossier /product/fonts de l'appareil.
  8. Vérifiez que fonts_customization.xml est dans /product/etc/ sur l'appareil.

Utiliser la nouvelle famille de polices du système

Pour utiliser la nouvelle famille de polices du système:

<style name="customstyle">
    <item name="android:fontFamily">customfontfamily</item>
</style>