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:
- Créer un package de polices
- Créer un package de superposition d'appareil
- Utiliser la famille de polices système ajoutée
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:
- Ajoutez tous les fichiers
ttfde police au package de polices dans la partitionvendor. Exemple :vendor/[oem]/fonts/[oem]-sans/ - Créez le fichier
Android.mkpour le package de polices. Exemple :vendor/[oem]/fonts/[oem]-[fontname]/Android.mk - Assurez-vous que le module sera installé dans la partition
productdu dossieretc. 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.
- Créez un fichier nommé
fonts.mkpour le package de polices, puis ajoutez les fichiersttfde polices àPRODUCT_PACKAGES. Exemple :vendor/[oem]/fonts/[oem]-[fontname]/fonts.mkExemple :
PRODUCT_PACKAGES := \ [font name].ttf \
Créer un package de superposition d'appareil
- Créez un module appelé
fonts_customization.xmlà ajouter au build. Ce module pointe vers le fichierfonts_customization.xmlcontenant les familles de polices et appelle les fichiers de compilation de tous les packages de polices. Exemple :vendor/[oem]/[device]_overlay/fonts/Android.mk - Créez les familles de polices:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xmlLe 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, ajoutezcustomizationType="new-named-family"à chaque famille de polices et assurez-vous que chacune dispose d'un attributname. Ce nom est utilisé ultérieurement pour accéder à la famille de polices. Ce fichier doit être ajouté au modulefonts_customizations.xmldéfini précédemment dansAndroid.mk.L'exemple fourni ci-dessus contient un fichier
fonts_customization.xmlvalide. - Créez
fonts.mk. Exemple :vendor/[oem]/[device]_overlay/fonts/fonts.mk - Ajoutez
fonts_customization.xmlsous 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 police à la compilation sous
PRODUCT_PACKAGES, puis effectuez une nouvelle compilation. Les polices seront installées sur le système. - Vérifiez que les fichiers de polices
ttfse trouvent dans le dossier/product/fontsde l'appareil. - Vérifiez que
fonts_customization.xmlest 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>