Agora você pode usar sobreposições de recursos no ambiente de execução (RROs, na sigla em inglês) para mudar fontes. Adicionando configurações fontes para criar um pacote de fontes, você pode usar fontes em temas e usar RROs para aplicar a personalizações.
Conclua estas tarefas:
- Criar um pacote de fontes
- Criar um pacote de sobreposição de dispositivos
- Usar a família de fontes do sistema adicionada
Uma amostra de estrutura de arquivo e arquivos de amostra são fornecidos em custom-fonts.zip. Faça o download e extraia o arquivo localmente para usar.
Criar um pacote de fontes
Para criar um pacote de fontes:
- Adicione todos os arquivos
ttf
de fontes ao pacote de fontes navendor
. Exemplo:vendor/[oem]/fonts/[oem]-sans/
- Crie o arquivo
Android.mk
para o pacote de fontes. Exemplo:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Confirme se o módulo será instalado na partição
product
naetc
. Para fazer isso, verifique 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 com o nome
fonts.mk
para o pacote de fontes e adicione a fontettf
arquivos paraPRODUCT_PACKAGES
. Exemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Exemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Criar um pacote de sobreposição de dispositivos
- Crie um módulo com o nome
fonts_customization.xml
para ser adicionado ao build. Este módulo aponta para o arquivofonts_customization.xml
que contém a fonte e chama os arquivos make 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
. Adicionar famílias de fontes para cada um dos pacotes de fontes nesse elemento. Além disso, adicionecustomizationType="new-named-family"
para cada família de fontes, e que cada um tenha um atributoname
. Esse nome será usado posteriormente para acessar o família de fontes. Esse arquivo precisa ser adicionado afonts_customizations.xml
definido anteriormente emAndroid.mk
.A amostra fornecida acima contém um arquivo
fonts_customization.xml
válido. - Criar
fonts.mk
. Exemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Adicione
fonts_customization.xml
na sinalizaçãoPRODUCT_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 recrie-o. As fontes serão instaladas no sistema. - Verifique se os arquivos de fontes
ttf
estão no/product/fonts
no 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>