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
ttfde fuentes al paquete de fuentes en la partición delvendor. Por ejemplo:vendor/[oem]/fonts/[oem]-sans/ - Cree el archivo
Android.mkpara 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
producten la carpetaetcPara 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.mkpara el paquete de fuentes y luego agregue los archivosttfde fuentes aPRODUCT_PACKAGES. Por ejemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mkPor ejemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Crear un paquete de superposición de dispositivos
- Cree 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 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.xmlEl 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.xmldefinido anteriormente enAndroid.mk.El ejemplo proporcionado anteriormente contiene un archivo
fonts_customization.xmlválido. - Crear
fonts.mk. Por ejemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk - Agregue
fonts_customization.xmldebajo 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_PACKAGESy luego vuelva a compilar. Las fuentes se instalarán en el sistema. - Verifique que los archivos de fuentes
ttfestén en la carpeta/product/fontsdel dispositivo. - Verifique que
fonts_customization.xmlesté 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>