Ahora puedes usar superposiciones de recursos en tiempo de ejecución (RRO) para cambiar las fuentes. Agregando clientes para crear un paquete de fuentes, puedes usar fuentes en temas y usar RRO para aplicar personalizadas.
Realiza estas tareas:
- Crea un paquete de fuentes
- Cómo crear un paquete de superposición de dispositivos
- Cómo usar la familia de fuentes del sistema que se agregó
En este documento, se proporcionan una estructura de archivos y archivos de muestra custom-fonts.zip. Descarga y, luego, extrae este archivo de forma local para tu propio uso.
Cómo crear un paquete de fuentes
Para crear un paquete de fuentes:
- Agrega todos los archivos
ttf
de fuentes al paquete de fuentes delvendor
. Por ejemplo:vendor/[oem]/fonts/[oem]-sans/
- Crea el archivo
Android.mk
para el paquete de fuentes. Por ejemplo:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Asegúrate de que el módulo se instale en la partición
product
deletc
carpeta Para ello, confirma que el módulo tenga las siguientes marcas:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
En el código de ejemplo proporcionado más arriba, se ilustra una definición completa de un módulo de paquete de fuentes.
- Crea un archivo llamado
fonts.mk
para el paquete de fuentes y, luego, agrega la fuentettf
archivos aPRODUCT_PACKAGES
. Por ejemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Por ejemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Cómo crear un paquete de superposición de dispositivos
- Crea un módulo llamado
fonts_customization.xml
para que se agregue a la compilación. Este módulo apunta al archivofonts_customization.xml
que contiene la fuente y llama a los archivos makefile 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
. Agrega para cada paquete de fuentes de este elemento. Además, agregacustomizationType="new-named-family"
a cada familia de fuentes y crea de modo que cada uno tenga un atributoname
. Este nombre se usará más adelante para acceder a la familia de fuentes. Este archivo debe agregarse afonts_customizations.xml
definido anteriormente enAndroid.mk
.El ejemplo anterior contiene un archivo
fonts_customization.xml
válido. - Crea
fonts.mk
. Por ejemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Agrega
fonts_customization.xml
debajo de la marcaPRODUCT_PACKAGES
. - Llama a cada uno de los paquetes de fuentes creados anteriormente.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Agrega el módulo de fuentes a la compilación en
PRODUCT_PACKAGES
y, luego, vuelve a compilarlo. Las fuentes se instalarán en el sistema. - Verifica que los archivos de fuentes
ttf
se encuentren en/product/fonts
carpeta en el dispositivo. - Verifica que
fonts_customization.xml
esté en/product/etc/
en el dispositivo.
Utilizar la nueva familia de fuentes del sistema
Para usar la nueva familia de fuentes del sistema, haz lo siguiente:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>