Agregar fuentes personalizadas

Ahora puede utilizar superposiciones de recursos en 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 RRO para aplicar las personalizaciones.

Complete estas tareas:

Se proporcionan una estructura de archivos 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 crear un paquete de fuentes:

  1. Agregue todos los archivos ttf fuentes al paquete de fuentes en la partición del vendor . Por ejemplo:

    vendor/[oem]/fonts/[oem]-sans/

  2. Cree el archivo Android.mk para el paquete de fuentes. Por ejemplo:

    vendor/[oem]/fonts/[oem]-[fontname]/Android.mk

  3. Asegúrese de que el módulo se instale en la partición product en la carpeta etc Para hacerlo, confirme que el módulo tenga las siguientes banderas:
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
    

    El código de muestra proporcionado anteriormente ilustra una definición completa de un módulo de paquete de fuentes.

  4. Cree un archivo llamado fonts.mk para el paquete de fuentes y luego agregue los archivos ttf de fuentes a PRODUCT_PACKAGES . Por ejemplo:

    vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk

    Por ejemplo:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Crear un paquete de superposición de dispositivo

  1. Cree un módulo llamado fonts_customization.xml para agregarlo a la compilación. Este módulo apunta al archivo fonts_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

  2. 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 . Agregue familias de fuentes para cada uno de los paquetes de fuentes de este elemento. Además, agregue customizationType="new-named-family" a cada familia de fuentes y asegúrese de que cada una tenga un atributo name . Este nombre se utiliza más adelante para acceder a la familia de fuentes. Este archivo debe agregarse al módulo fonts_customizations.xml definido previamente en Android.mk .

    El ejemplo proporcionado anteriormente contiene un archivo fonts_customization.xml válido.

  3. Crea fonts.mk . Por ejemplo:

    vendor/[oem]/[device]_overlay/fonts/fonts.mk

  4. Agregue fonts_customization.xml bajo la bandera PRODUCT_PACKAGES .
  5. Llame a cada uno de los paquetes de fuentes creados anteriormente.

    $(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)

  6. Agregue el módulo de fuente a la compilación en PRODUCT_PACKAGES y luego reconstruya. Las fuentes se instalarán en el sistema.
  7. Verifique que los archivos de fuentes ttf estén en la carpeta /product/fonts del dispositivo.
  8. Verifique que fonts_customization.xml esté en /product/etc/ en el dispositivo.

Utilice la nueva familia de fuentes del sistema

Para utilizar la nueva familia de fuentes del sistema:

<style name="customstyle">
    <item name="android:fontFamily">customfontfamily</item>
</style>