A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Cómo agregar fuentes personalizadas
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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:
- Agrega todos los archivos
ttf
de la fuente al paquete de fuentes en la partición vendor
. Por ejemplo:
vendor/[oem]/fonts/[oem]-sans/
- Crea el archivo
Android.mk
para el paquete de fuentes. Por ejemplo:
vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- 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.
- 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
- 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
- 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.
- Crea
fonts.mk
. Por ejemplo:
vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Agrega
fonts_customization.xml
debajo de la marca PRODUCT_PACKAGES
.
- Llama a cada uno de los paquetes de fuentes creados anteriormente.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- 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.
- Verifica que los archivos de fuentes
ttf
estén en la carpeta /product/fonts
del dispositivo.
- 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>
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-08-10 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-10 (UTC)"],[],[],null,["# Add custom fonts\n\nYou can now use runtime resource overlays (RROs) to change fonts. By adding custom\nfonts to make a font package, you can use fonts in themes and use RROs to apply the\ncustomizations.\n\nComplete these tasks:\n\n- [Make a font package](/docs/automotive/hmi/car_ui/fonts#make)\n- [Create a device overlay package](/docs/automotive/hmi/car_ui/fonts#create)\n- [Use the added system fonts family](/docs/automotive/hmi/car_ui/fonts#use)\n\nA sample file structure and sample files are provided in\n[custom-fonts.zip](/static/docs/automotive/hmi/car_ui/custom-fonts.zip).\nDownload and then extract this file locally for your own use.\n\nMake a font package\n-------------------\n\nTo make a font package:\n\n1. Add all the font `ttf` files to the font package in the `vendor` partition. For example:\n\n `vendor/[oem]/fonts/[oem]-sans/`\n2. Create the `Android.mk` file for the font package. For example:\n\n `vendor/[oem]/fonts/[oem]-[fontname]/Android.mk`\n3. Make sure the module will be installed in the `product` partition in the `etc` folder. To do so, confirm the module has the following flags: \n\n ```makefile\n LOCAL_MODULE_CLASS := ETC\n LOCAL_PRODUCT_MODULE := true\n LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts\n ```\n\n The sample code provided above illustrates a complete definition of a font package module.\n4. Create a file named `fonts.mk` for the font package and then add the font `ttf` files to `PRODUCT_PACKAGES`. For example:\n\n `vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk`\n\n For example: \n\n ```objective-c\n PRODUCT_PACKAGES := \\\n [font name].ttf \\\n ```\n\nCreate a device overlay package\n-------------------------------\n\n1. Make a module called `fonts_customization.xml` to be added to the build. This module points to the `fonts_customization.xml` file that contains the font families and calls the make files of all the font packages. For example:\n\n `vendor/[oem]/[device]_overlay/fonts/Android.mk`\n2. Create the font families: `vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml`\n\n The root level of the file must be a `fonts-modification` tag. Add\n font families for each of the font packages under this element. In addition, add\n `customizationType=\"new-named-family\"` to every font family, and make\n sure each has a `name` attribute. This name is used later to access the\n font family. This file must be added to the `fonts_customizations.xml`\n module defined previously in `Android.mk`.\n\n The sample provided above contains a valid `fonts_customization.xml` file.\n3. Create `fonts.mk`. For example:\n\n `vendor/[oem]/[device]_overlay/fonts/fonts.mk`\n4. Add `fonts_customization.xml` under the `PRODUCT_PACKAGES` flag.\n5. Call into each of the previously created font packages.\n `$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)`\n\n6. Add the font module to the build under `PRODUCT_PACKAGES` and then rebuild. The fonts will be installed on the system.\n7. Verify that the `ttf` fonts files are in the `/product/fonts` folder on the device.\n8. Verify that `fonts_customization.xml` is in `/product/etc/` on the device.\n\nUse the new system fonts family\n-------------------------------\n\nTo use the new system fonts family: \n\n```text\n\u003cstyle name=\"customstyle\"\u003e\n \u003citem name=\"android:fontFamily\"\u003ecustomfontfamily\u003c/item\u003e\n\u003c/style\u003e\n```"]]