Ahora puede utilizar superposiciones de recursos en tiempo de ejecución (RRO) para cambiar las fuentes. Al agregar fuentes personalizadas para crear un paquete de fuentes, puede usar fuentes en temas y RRO para aplicar las personalizaciones.
Complete estas tareas:
- Hacer un paquete de fuentes
- Crear un paquete de superposición de dispositivo
- Utilice la familia de fuentes del sistema agregada
Se proporcionan una estructura de archivos de muestra y archivos de muestra en custom-fonts.zip . Descargue y luego extraiga este archivo localmente para su propio uso.
Hacer un paquete de fuentes
Para crear un paquete de fuentes:
- Agregue todos los archivos
ttf
fuentes al paquete de fuentes en la partición delvendor
. Por ejemplo:vendor/[oem]/fonts/[oem]-sans/
- Cree el archivo
Android.mk
para el paquete de fuentes. Por ejemplo:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Asegúrese de que el módulo se instale en la partición
product
en la carpetaetc
Para hacerlo, confirme que el módulo tenga las siguientes banderas:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
El código de muestra proporcionado anteriormente ilustra una definición completa de un módulo de paquete de fuentes.
- Cree un archivo llamado
fonts.mk
para el paquete de fuentes y luego agregue los archivosttf
de fuentes aPRODUCT_PACKAGES
. Por ejemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Por ejemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Crear un paquete de superposición de dispositivo
- Cree un módulo llamado
fonts_customization.xml
para agregarlo a la compilación. Este módulo apunta al archivofonts_customization.xml
que contiene las familias de fuentes y llama a los archivos make de todos los paquetes de fuentes. Por ejemplo:vendor/[oem]/[device]_overlay/fonts/Android.mk
- Crea las familias de fuentes:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
El nivel raíz del archivo debe ser una etiqueta
fonts-modification
. Agregue familias de fuentes para cada uno de los paquetes de fuentes de este elemento. Además, agreguecustomizationType="new-named-family"
a cada familia de fuentes y asegúrese de que cada una tenga un atributoname
. Este nombre se utiliza más adelante para acceder a la familia de fuentes. Este archivo debe agregarse al módulofonts_customizations.xml
definido previamente enAndroid.mk
.El ejemplo proporcionado anteriormente contiene un archivo
fonts_customization.xml
válido. - Crea
fonts.mk
. Por ejemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Agregue
fonts_customization.xml
bajo la banderaPRODUCT_PACKAGES
. - Llame a cada uno de los paquetes de fuentes creados anteriormente.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Agregue el módulo de fuente a la compilación en
PRODUCT_PACKAGES
y luego reconstruya. Las fuentes se instalarán en el sistema. - Verifique que los archivos de fuentes
ttf
estén en la carpeta/product/fonts
del dispositivo. - Verifique que
fonts_customization.xml
esté en/product/etc/
en el dispositivo.
Utilice la nueva familia de fuentes del sistema
Para utilizar la nueva familia de fuentes del sistema:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>