Cómo agregar fuentes personalizadas

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:

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:

  1. Agrega todos los archivos ttf de la fuente al paquete de fuentes en la partición 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 de la carpeta etc. 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.

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

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

    Por ejemplo:

    PRODUCT_PACKAGES := \
    [font name].ttf \

Crea un paquete de superposición de dispositivos

  1. Crea 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 de 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. Agrega familias de fuentes para cada uno de los paquetes de fuentes en este elemento. Además, agrega customizationType="new-named-family" a cada familia de fuentes y asegúrate de que cada una tenga un atributo name. Este nombre se usa más adelante para acceder a la familia de fuentes. Este archivo se debe agregar al módulo fonts_customizations.xml definido anteriormente en Android.mk.

    La muestra proporcionada anteriormente 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 debajo de 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 fuente a la compilación en PRODUCT_PACKAGES y, luego, vuelve a compilar. Las fuentes se instalarán en el sistema.
  7. Verifica que los archivos de fuentes ttf estén en la carpeta /product/fonts del dispositivo.
  8. Verifica que fonts_customization.xml esté 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>