Adicionar fontes personalizadas

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:

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:

  1. Adicione todos os arquivos de fonte ttf ao pacote de fontes na partição 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. Verifique se o módulo será instalado na partição product na pasta etc. 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.

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

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

    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. Esse módulo aponta para o arquivo fonts_customization.xml que 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

  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. Adicione famílias de fontes para cada um dos pacotes de fontes abaixo deste elemento. Além disso, adicione customizationType="new-named-family" a todas as famílias de fontes e verifique se cada uma delas tem um atributo name. Esse nome é usado mais tarde para acessar a família de fontes. Esse arquivo precisa 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. Exemplo:

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

  4. Adicione fonts_customization.xml à flag 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 refaça o build. 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.

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>