Adicionando fontes personalizadas

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:

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:

  1. Adicione todos os arquivos ttf de fontes ao pacote de fontes na partição do 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 do 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 ttf de fontes a PRODUCT_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

  1. Crie um módulo chamado fonts_customization.xml para ser adicionado ao build. 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 . Esse 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 .

    A amostra fornecida 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 no 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 à compilação em PRODUCT_PACKAGES e, em seguida, reconstrua. As fontes serão instaladas no sistema.
  7. Verifique se os arquivos de fontes ttf estão na pasta /product/fonts no 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>