Recursos de fonte

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Um recurso de fonte define uma fonte personalizada que você pode usar no seu app. As fontes podem ser arquivos individuais ou um conjunto de arquivos, conhecido como uma família de fontes e definido em XML.

Confira também como definir fontes em XML ou usar fontes para download.

Pacote de fontes

Você pode agrupar fontes como recursos em um app. As fontes são compiladas em arquivos R e ficam disponíveis automaticamente no sistema como um recurso. É possível acessar essas fontes com ajuda do tipo de recurso font.

localização do arquivo:
res/font/filename.ttf (.ttf, .ttc, .otf ou .xml)
O nome do arquivo é usado como ID de recurso.
referência de recurso:
Em XML: @[package:]font/font_name
sintaxe:
<?xml version="1.0" encoding="utf-8"?>
<font-family>
  <font
    android:font="@[package:]font/font_to_include"
    android:fontStyle=["normal" | "italic"]
    android:fontWeight="weight_value" />
</font-family>
elementos:
<font-family>
Obrigatório. Precisa ser o nó raiz.

Nenhum atributo.

<font>
Define uma única fonte dentro de uma família. Não contém nós filhos.

atributos:

android:fontStyle
Palavra-chave. Define o estilo da fonte. Esse atributo é usado quando a fonte é carregada na pilha de fontes e substitui qualquer informação de estilo nas tabelas de cabeçalho da fonte. Se você não especificar o atributo, o app vai usar o valor das tabelas de cabeçalho da fonte. O valor da constante precisa ser normal ou italic.
android:fontWeight
Número inteiro. A espessura da fonte. Esse atributo é usado quando a fonte é carregada na pilha de fontes e substitui qualquer informação de espessura nas tabelas de cabeçalho da fonte. O valor do atributo precisa ser um número positivo, múltiplo de 100 e estar entre 100 e 900. Se você não especificar o atributo, o app vai usar o valor das tabelas do cabeçalho da fonte. Os valores mais comuns são 400 para uma espessura normal e 700 para uma espessura em negrito.
Exemplo:
Arquivo XML salvo em res/font/lobster.xml:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/lobster_regular" />
    <font
        android:fontStyle="italic"
        android:fontWeight="400"
        android:font="@font/lobster_italic" />
</font-family>

O arquivo XML que aplica a fonte a um TextView é salvo em res/layout/:

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />

Fonte para download

Um recurso de fonte para download define uma fonte personalizada que você pode usar em um app. Essa fonte não está disponível no app, mas é extraída de um provedor de fontes.

localização do arquivo:
res/font/filename.xml O nome do arquivo é usado como ID de recurso.
referência de recurso:
Em XML:@[package:]font/font_name
sintaxe:
<?xml version="1.0" encoding="utf-8"?>
<font-family
    android:fontProviderAuthority="authority"
    android:fontProviderPackage="package"
    android:fontProviderQuery="query"
    android:fontProviderCerts="@[package:]array/array_resource" />
elementos:
<font-family>
Obrigatório. Precisa ser o nó raiz.

atributos:

android:fontProviderAuthority
String. Obrigatório. É a autoridade do provedor da fonte que define a solicitação da fonte.
android:fontProviderPackage
String. Obrigatório. O nome do pacote do provedor da fonte que vai ser usado para a solicitação. É usado para verificar a identidade do provedor.
android:fontProviderQuery
String. Obrigatório. A consulta de string da fonte. Consulte a documentação do provedor de fontes em relação ao formato dessa string.
android:fontProviderCerts
Recurso de matriz. Obrigatório. Define os conjuntos de hashes dos certificados usados para autorizar esse provedor. Isso é usado para verificar a identidade do provedor e só é necessário se o provedor não fizer parte da imagem do sistema. O valor pode apontar para uma lista única (recurso de matriz de string) ou uma lista de listas (recurso de matriz), em que cada lista representa um conjunto de hashes de assinatura. Consulte a documentação do seu provedor de fontes para conferir esses valores.
Exemplo:
Arquivo XML salvo em res/font/lobster.xml:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    android:fontProviderAuthority="com.example.fontprovider.authority"
    android:fontProviderPackage="com.example.fontprovider"
    android:fontProviderQuery="Lobster"
    android:fontProviderCerts="@array/certs">
</font-family>

O arquivo XML que define a matriz cert é salvo em res/values/:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="certs">
      <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
    </string-array>
</resources>

O arquivo XML que aplica a fonte a um TextView é salvo em res/layout/:

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />