Adicione fontes personalizadas

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:

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:

  1. Adicione todos os arquivos de fonte ttf ao pacote de fontes na partição vendor . Por exemplo:

    vendor/[oem]/fonts/[oem]-sans/

  2. Crie o arquivo Android.mk para o pacote de fontes. Por exemplo:

    vendor/[oem]/fonts/[oem]-[fontname]/Android.mk

  3. Certifique-se de que o módulo será instalado na partição product na pasta etc 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.

  4. Crie um arquivo chamado fonts.mk para o pacote de fontes e adicione os arquivos de fonte ttf a PRODUCT_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

  1. Faça um módulo chamado fonts_customization.xml para ser adicionado à compilação. Este módulo aponta para o arquivo fonts_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

  2. 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, adicione customizationType="new-named-family" a cada família de fontes e certifique-se de que cada uma tenha um atributo name . Este nome é usado posteriormente para acessar a família de fontes. Este arquivo deve ser adicionado ao módulo fonts_customizations.xml definido anteriormente em Android.mk .

    O exemplo fornecido acima contém um arquivo fonts_customization.xml válido.

  3. Crie fonts.mk . Por exemplo:

    vendor/[oem]/[device]_overlay/fonts/fonts.mk

  4. Adicione fonts_customization.xml sob o sinalizador PRODUCT_PACKAGES .
  5. Chame cada um dos pacotes de fontes criados anteriormente.

    $(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)

  6. Adicione o módulo de fonte à construção em PRODUCT_PACKAGES e depois reconstrua. As fontes serão instaladas no sistema.
  7. Verifique se os arquivos de fontes ttf estão na pasta /product/fonts do dispositivo.
  8. 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>