Adición de fuentes personalizadas

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:

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:

  1. Agregue todos los archivos ttf de 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 instalará en la partición del product en la carpeta etc 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.

  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 dispositivos

  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. 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, agregue customizationType="new-named-family" a cada familia de fuentes y asegúrese de que cada una tenga un atributo de name . Este nombre se usa más tarde para acceder a la familia de fuentes. Este archivo debe agregarse al módulo fonts_customizations.xml definido anteriormente en Android.mk .

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

  3. Crear fonts.mk . Por ejemplo:

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

  4. Agregue fonts_customization.xml debajo de la marca 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 fuentes a la compilación en PRODUCT_PACKAGES y luego vuelva a compilar. 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 usar la nueva familia de fuentes del sistema:

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