Cómo agregar fuentes personalizadas

Ahora puedes usar superposiciones de recursos en tiempo de ejecución (RRO) para cambiar las fuentes. Agregando clientes para crear un paquete de fuentes, puedes usar fuentes en temas y usar RRO para aplicar personalizadas.

Completa estas tareas:

En este documento, se proporcionan una estructura de archivos y archivos de muestra custom-fonts.zip. Descarga y, luego, extrae este archivo de forma local para tu propio uso.

Cómo crear un paquete de fuentes

Para crear un paquete de fuentes:

  1. Agrega todos los archivos ttf de fuentes al paquete de fuentes del vendor. Por ejemplo:

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

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

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

  3. Asegúrate de que el módulo se instale en la partición product del etc carpeta 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 ejemplo proporcionado más arriba, se ilustra una definición completa de un módulo de paquete de fuentes.

  4. Crea un archivo llamado fonts.mk para el paquete de fuentes y, luego, agrega la fuente ttf archivos a PRODUCT_PACKAGES. Por ejemplo:

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

    Por ejemplo:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Cómo crear un paquete de superposición de dispositivos

  1. Crea un módulo llamado fonts_customization.xml para que se agregue a la compilación. Este módulo apunta al archivo fonts_customization.xml que contiene la fuente y llama a los archivos makefile 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. Agrega para cada paquete de fuentes de este elemento. Además, agrega customizationType="new-named-family" a cada familia de fuentes y crea de modo que cada uno tenga un atributo name. Este nombre se usará más adelante para acceder a la familia de fuentes. Este archivo debe agregarse a fonts_customizations.xml definido anteriormente en Android.mk.

    El ejemplo anterior contiene un archivo fonts_customization.xml válido.

  3. Crea fonts.mk. Por ejemplo:

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

  4. Agrega fonts_customization.xml bajo la marca PRODUCT_PACKAGES.
  5. Llama a cada uno de los paquetes de fuentes creados anteriormente.

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

  6. Agrega el módulo de fuentes a la compilación en PRODUCT_PACKAGES y, luego, vuelve a compilarlo. Las fuentes se instalarán en el sistema.
  7. Verifica que los archivos de fuentes ttf se encuentren en /product/fonts carpeta en el dispositivo.
  8. Verifica que fonts_customization.xml esté en /product/etc/ en el dispositivo.

Utilizar 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>