Adicionar fontes personalizadas

Agora você pode usar sobreposições de recursos no ambiente de execução (RROs, na sigla em inglês) para mudar fontes. Adicionando configurações fontes para criar um pacote de fontes, você pode usar fontes em temas e usar RROs para aplicar a personalizações.

Conclua estas tarefas:

Uma amostra de estrutura de arquivo e arquivos de amostra são fornecidos em custom-fonts.zip. Faça o download e extraia o arquivo localmente para usar.

Criar um pacote de fontes

Para criar um pacote de fontes:

  1. Adicione todos os arquivos ttf de fontes ao pacote de fontes na vendor. Exemplo:

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

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

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

  3. Confirme se o módulo será instalado na partição product na etc. Para fazer isso, verifique 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.

  4. Crie um arquivo com o nome fonts.mk para o pacote de fontes e adicione a fonte ttf arquivos para PRODUCT_PACKAGES. Exemplo:

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

    Exemplo:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Criar um pacote de sobreposição de dispositivos

  1. Crie um módulo com o nome fonts_customization.xml para ser adicionado ao build. Este módulo aponta para o arquivo fonts_customization.xml que contém a fonte e chama os arquivos make de todos os pacotes de fontes. 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 precisa ser uma tag fonts-modification. Adicionar famílias de fontes para cada um dos pacotes de fontes nesse elemento. Além disso, adicione customizationType="new-named-family" para cada família de fontes, e que cada um tenha um atributo name. Esse nome será usado posteriormente para acessar o família de fontes. Esse arquivo precisa ser adicionado a fonts_customizations.xml definido anteriormente em Android.mk.

    A amostra fornecida acima contém um arquivo fonts_customization.xml válido.

  3. Criar fonts.mk. Exemplo:

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

  4. Adicione fonts_customization.xml na sinalização 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 ao build em PRODUCT_PACKAGES e recrie-o. As fontes serão instaladas no sistema.
  7. Verifique se os arquivos de fontes ttf estão no /product/fonts no dispositivo.
  8. Verifique se fonts_customization.xml está 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>