Agora você pode usar RROs (sobreposições de recursos de tempo de execução) para alterar 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:
- Faça um pacote de fontes
- Crie um pacote de sobreposição de dispositivo
- Use a família de fontes do sistema adicionada
Uma estrutura de arquivo de amostra e arquivos de amostra são fornecidos em custom-fonts.zip . Baixe e extraia esse arquivo localmente para seu próprio uso.
Faça um pacote de fontes
Para fazer um pacote de fontes:
- Adicione todos os arquivos de fonte
ttf
ao pacote de fontes na partiçãovendor
. Por exemplo:vendor/[oem]/fonts/[oem]-sans/
- Crie o arquivo
Android.mk
para o pacote de fontes. Por exemplo:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Certifique-se de que o módulo será instalado na partição
product
na pastaetc
Para fazer isso, confirme se o módulo possui os seguintes sinalizadores:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
O código de exemplo 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 de fontettf
aPRODUCT_PACKAGES
. Por exemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Por exemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Crie um pacote de sobreposição de dispositivo
- Faça um módulo chamado
fonts_customization.xml
para ser adicionado à compilação. Este módulo aponta para o arquivofonts_customization.xml
que contém as famílias de fontes e chama os arquivos make de todos os pacotes de fontes. Por 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 deve ser uma tag
fonts-modification
. Adicione famílias de fontes para cada um dos pacotes de fontes neste elemento. Além disso, adicionecustomizationType="new-named-family"
a cada família de fontes e certifique-se de que cada uma tenha um atributoname
. Este nome é usado posteriormente para acessar a família de fontes. Este arquivo deve ser adicionado ao módulofonts_customizations.xml
definido anteriormente emAndroid.mk
.O exemplo fornecido acima contém um arquivo
fonts_customization.xml
válido. - Crie
fonts.mk
. Por exemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Adicione
fonts_customization.xml
sob o sinalizadorPRODUCT_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 à construção em
PRODUCT_PACKAGES
e depois reconstrua. 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.
Use 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>