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. Ao adicionar a personalização fontes para criar um pacote de fontes, 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>