Ahora puedes usar superposiciones de recursos del entorno de ejecución (RRO) para cambiar las fuentes. Si agregas fuentes personalizadas para crear un paquete de fuentes, puedes usar fuentes en temas y usar RRO para aplicar las personalizaciones.
Completa estas tareas:
- Cómo crear un paquete de fuentes
- Cómo crear un paquete de superposición de dispositivos
- Cómo usar la familia de fuentes del sistema agregada
En custom-fonts.zip, se proporcionan una estructura de archivos de muestra y archivos de muestra. Descarga y, luego, extrae este archivo de forma local para tu uso personal.
Cómo crear un paquete de fuentes
Para crear un paquete de fuentes, haz lo siguiente:
- Agrega todos los archivos
ttf
de la fuente al paquete de fuentes en la particiónvendor
. 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
de la carpetaetc
. 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 muestra que se proporcionó anteriormente, 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 los archivosttf
de fuentes aPRODUCT_PACKAGES
. Por ejemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Por ejemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Crea un paquete de superposición de dispositivos
- Crea 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 de 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
. Agrega familias de fuentes para cada uno de los paquetes de fuentes en este elemento. Además, agregacustomizationType="new-named-family"
a cada familia de fuentes y asegúrate de que cada una tenga un atributoname
. Este nombre se usa más adelante para acceder a la familia de fuentes. Este archivo se debe agregar al módulofonts_customizations.xml
definido anteriormente enAndroid.mk
.La muestra proporcionada anteriormente 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 fuente a la compilación en
PRODUCT_PACKAGES
y, luego, vuelve a compilar. Las fuentes se instalarán en el sistema. - Verifica que los archivos de fuentes
ttf
estén en la carpeta/product/fonts
del dispositivo. - Verifica que
fonts_customization.xml
esté en/product/etc/
en el dispositivo.
Usa 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>