Agora você pode usar o Runtime Resource Overlays (RROs) para alterar as 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
- Criar 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 este arquivo localmente para seu próprio uso.
Faça um pacote de fontes
Para fazer um pacote de fontes:
- Adicione todos os arquivos
ttf
de fontes ao pacote de fontes na partição dovendor
. 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 do
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 arquivosttf
de fontes aPRODUCT_PACKAGES
. Por exemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Por 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. 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
. Esse nome é usado posteriormente para acessar a família de fontes. Este arquivo deve ser adicionado ao módulofonts_customizations.xml
definido anteriormente emAndroid.mk
.A amostra fornecida 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
no 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 à compilação em
PRODUCT_PACKAGES
e, em seguida, reconstrua. As fontes serão instaladas no sistema. - Verifique se os arquivos de fontes
ttf
estão na pasta/product/fonts
no 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>