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:
- Criar um pacote de fontes
- Criar um pacote de sobreposição de dispositivo
- Usar a família de fontes do sistema adicionada
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
ttfao pacote de fontes na partiçãovendor. Exemplo:vendor/[oem]/fonts/[oem]-sans/ - Crie o arquivo
Android.mkpara o pacote de fontes. Exemplo:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk - Verifique se o módulo será instalado na partição
productna pastaetc. 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.mkpara o pacote de fontes e adicione os arquivosttfde fontes aPRODUCT_PACKAGES. Exemplo:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mkExemplo:
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. Esse módulo aponta para o arquivofonts_customization.xmlque 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.xmlO 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, adicionecustomizationType="new-named-family"a todas as famílias de fontes e verifique se cada uma delas tem um atributoname. Esse nome é usado mais tarde para acessar a família de fontes. Esse arquivo precisa ser adicionado ao módulofonts_customizations.xmldefinido anteriormente emAndroid.mk.O exemplo fornecido acima contém um arquivo
fonts_customization.xmlválido. - Crie
fonts.mk. Exemplo:vendor/[oem]/[device]_overlay/fonts/fonts.mk - Adicione
fonts_customization.xmlà flagPRODUCT_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_PACKAGESe refaça o build. As fontes serão instaladas no sistema. - Verifique se os arquivos de fontes
ttfestão na pasta/product/fontsdo dispositivo. - Verifique se
fonts_customization.xmlestá 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>