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
ttfde la fuente al paquete de fuentes en la particiónvendor. Por ejemplo:vendor/[oem]/fonts/[oem]-sans/ - Crea el archivo
Android.mkpara 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
productde 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.mkpara el paquete de fuentes y, luego, agrega los archivosttfde fuentes aPRODUCT_PACKAGES. Por ejemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mkPor ejemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Crea un paquete de superposición de dispositivos
- Crea un módulo llamado
fonts_customization.xmlpara agregarlo a la compilación. Este módulo apunta al archivofonts_customization.xmlque 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.xmlEl 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.xmldefinido anteriormente enAndroid.mk.La muestra proporcionada anteriormente contiene un archivo
fonts_customization.xmlválido. - Crea
fonts.mk. Por ejemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk - Agrega
fonts_customization.xmldebajo 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_PACKAGESy, luego, vuelve a compilar. Las fuentes se instalarán en el sistema. - Verifica que los archivos de fuentes
ttfestén en la carpeta/product/fontsdel dispositivo. - Verifica que
fonts_customization.xmlesté 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>