A partir de 27 de março de 2025, recomendamos usar android-latest-release
em vez de aosp-main
para criar e contribuir com o AOSP. Para mais informações, consulte Mudanças no AOSP.
Adicionar fontes personalizadas
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Agora você pode usar sobreposições de recursos de execução (RROs) para mudar fontes. Ao adicionar fontes
personalizadas para criar um pacote de fontes, você pode usar fontes em temas e usar RROs para aplicar as
personalizações.
Conclua estas tarefas:
Uma estrutura de arquivo de exemplo e arquivos de exemplo são fornecidos em
custom-fonts.zip.
Faça o download e extraia esse arquivo localmente para uso próprio.
Criar um pacote de fontes
Para criar um pacote de fontes:
- Adicione todos os arquivos de fonte
ttf
ao pacote de fontes na
partição vendor
. Exemplo:
vendor/[oem]/fonts/[oem]-sans/
- Crie o arquivo
Android.mk
para o pacote de fontes. Exemplo:
vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Verifique se o módulo será instalado na partição
product
na pasta
etc
. Para fazer isso, confirme se o módulo tem as seguintes flags:
LOCAL_MODULE_CLASS := ETC
LOCAL_PRODUCT_MODULE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
O exemplo de código fornecido acima ilustra uma definição completa de um módulo de pacote de fontes.
- Crie um arquivo chamado
fonts.mk
para o pacote de fontes e adicione os arquivos
ttf
de fontes a PRODUCT_PACKAGES
. Exemplo:
vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Exemplo:
PRODUCT_PACKAGES := \
[font name].ttf \
Criar um pacote de sobreposição de dispositivo
- Crie um módulo chamado
fonts_customization.xml
para ser adicionado ao build.
Esse módulo aponta para o arquivo fonts_customization.xml
que contém as famílias
de fontes e chama os arquivos de criação de todos os pacotes de fontes. Exemplo:
vendor/[oem]/[device]_overlay/fonts/Android.mk
- Crie as famílias de fontes:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
O nível raiz do arquivo precisa ser uma tag fonts-modification
. Adicione
famílias de fontes para cada um dos pacotes de fontes abaixo deste elemento. Além disso, adicione
customizationType="new-named-family"
a todas as famílias de fontes e verifique
se cada uma delas tem um atributo name
. Esse nome é usado mais tarde para acessar a
família de fontes. Esse arquivo precisa ser adicionado ao módulo fonts_customizations.xml
definido anteriormente em Android.mk
.
O exemplo fornecido acima contém um arquivo fonts_customization.xml
válido.
- Crie
fonts.mk
. Exemplo:
vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Adicione
fonts_customization.xml
à flag PRODUCT_PACKAGES
.
- Chame cada um dos pacotes de fontes criados anteriormente.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Adicione o módulo de fonte ao build em
PRODUCT_PACKAGES
e refaça o build.
As fontes serão instaladas no sistema.
- Verifique se os arquivos de fontes
ttf
estão na
pasta /product/fonts
do dispositivo.
- Verifique se
fonts_customization.xml
está em /product/etc/
no
dispositivo.
Usar a nova família de fontes do sistema
Para usar a nova família de fontes do sistema:
<style name="customstyle">
<item name="android:fontFamily">customfontfamily</item>
</style>
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2025-08-10 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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```"]]