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 utiliser des RRO pour appliquer les personnalisations.
Effectuez ces tâches :
- Créer un package de polices
- Créer un package de superposition de périphériques
- Utiliser la famille de polices système ajoutée
Un exemple de structure de fichier et des exemples de fichiers sont fournis dans custom-fonts.zip . Téléchargez puis extrayez ce fichier localement pour votre propre usage.
Créer un package de polices
Pour créer un package de polices :
- Ajoutez tous les fichiers
ttf
de polices au package de polices dans la partitionvendor
. Par exemple:vendor/[oem]/fonts/[oem]-sans/
- Créez le fichier
Android.mk
pour le package de polices. Par exemple:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Assurez-vous que le module sera installé dans la partition
product
dans le dossieretc
Pour ce faire, vérifiez que le module possède 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.
- Créez un fichier nommé
fonts.mk
pour le package de polices, puis ajoutez les fichiersttf
de police àPRODUCT_PACKAGES
. Par exemple:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Par exemple:
PRODUCT_PACKAGES := \ [font name].ttf \
Créer un package de superposition de périphériques
- Créez un module appelé
fonts_customization.xml
à ajouter à la build. Ce module pointe vers le fichierfonts_customization.xml
qui contient les familles de polices et appelle les fichiers make de tous les packages de polices. Par exemple:vendor/[oem]/[device]_overlay/fonts/Android.mk
- 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,customizationType="new-named-family"
à chaque famille de polices et assurez-vous que chacune possède un attributname
. Ce nom est utilisé ultérieurement pour accéder à la famille de polices. Ce fichier doit être ajouté au modulefonts_customizations.xml
défini précédemment dansAndroid.mk
.L'exemple fourni ci-dessus contient un fichier
fonts_customization.xml
valide. - Créez
fonts.mk
. Par exemple:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Ajoutez
fonts_customization.xml
sous l'indicateurPRODUCT_PACKAGES
. - Appelez chacun des packages de polices créés précédemment.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Ajoutez le module de polices à la construction sous
PRODUCT_PACKAGES
, puis reconstruisez. Les polices seront installées sur le système. - Vérifiez que les fichiers de polices
ttf
se trouvent dans le dossier/product/fonts
sur l'appareil. - Vérifiez que
fonts_customization.xml
se trouve dans/product/etc/
sur l'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>