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
ttfde fontes ao pacote de fontes na partição dovendor. Por exemplo:vendor/[oem]/fonts/[oem]-sans/ - Crie o arquivo
Android.mkpara 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
productna pastaetcPara 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.mkpara o pacote de fontes e adicione os arquivosttfde fontes aPRODUCT_PACKAGES. Por exemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mkPor exemplo:
PRODUCT_PACKAGES := \ [font name].ttf \
Criar um pacote de sobreposição de dispositivo
- Crie um módulo chamado
fonts_customization.xmlpara ser adicionado ao build. Este módulo aponta para o arquivofonts_customization.xmlque 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.xmlO 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.xmldefinido anteriormente emAndroid.mk.A amostra fornecida acima contém um arquivo
fonts_customization.xmlválido. - Crie
fonts.mk. Por exemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk - Adicione
fonts_customization.xmlno 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_PACKAGESe, em seguida, reconstrua. As fontes serão instaladas no sistema. - Verifique se os arquivos de fontes
ttfestão na pasta/product/fontsno dispositivo. - Verifique se
fonts_customization.xmlestá 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>