Ajouter des polices personnalisées

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

Effectuez les tâches suivantes:

Vous trouverez une structure et des exemples de fichiers dans custom-fonts.zip. Téléchargez, puis extrayez ce fichier localement pour votre usage personnel.

Créer un package de polices

Pour créer un package de polices:

  1. Ajoutez tous les fichiers de police ttf 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 répertoire 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 la police. ttf fichiers vers 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 à la compilation. Ce module pointe vers le fichier fonts_customization.xml contenant la police familles et appelle les fichiers make de tous les packs 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. Ajouter familles de polices pour chacun des packs de polices de cet élément. En outre, ajoutez customizationType="new-named-family" à chaque famille de polices et assurez-vous que chacun d'eux possède un attribut name. Ce nom sera utilisé plus tard pour accéder famille de polices. Ce fichier doit être ajouté à fonts_customizations.xml module 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'option 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 au build sous PRODUCT_PACKAGES, puis recompilez-le. Les polices seront installées sur le système.
  7. Vérifiez que les fichiers de polices ttf se trouvent dans le /product/fonts sur l'appareil.
  8. Vérifiez que fonts_customization.xml se trouve dans /product/etc/ sur le appareil.

Utiliser la nouvelle famille de polices système

Pour utiliser la nouvelle famille de polices système:

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