Ahora puede usar Superposiciones de recursos de 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 usar RRO para aplicar las personalizaciones.
Complete estas tareas:
- Hacer un paquete de fuentes
- Crear un paquete de superposición de dispositivos
- Use la familia de fuentes del sistema agregada
Se proporciona una estructura de archivo 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 hacer un paquete de fuentes:
- Agregue todos los archivos
ttf
de 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 instalará en la partición del
product
en la carpetaetc
Para hacerlo, confirme que el módulo tiene los siguientes indicadores:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
El código de ejemplo 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 dispositivos
- 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
- Cree 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 bajo este elemento. Además, agreguecustomizationType="new-named-family"
a cada familia de fuentes y asegúrese de que cada una tenga un atributo dename
. Este nombre se usa más tarde para acceder a la familia de fuentes. Este archivo debe agregarse al módulofonts_customizations.xml
definido anteriormente enAndroid.mk
.El ejemplo proporcionado anteriormente contiene un archivo
fonts_customization.xml
válido. - Crear
fonts.mk
. Por ejemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Agregue
fonts_customization.xml
debajo de la marcaPRODUCT_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 fuentes a la compilación en
PRODUCT_PACKAGES
y luego vuelva a compilar. 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 usar la nueva familia de fuentes del sistema:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>