O recurso Fontes para Download permite que as APIs solicitem fontes de um aplicativo provedor, em vez de
agrupar arquivos no app ou permitir que o app faça o download de fontes. O recurso Fontes para Download está disponível em
dispositivos com a versão 14 ou mais recente da API do Android na biblioteca AndroidX Core.
As fontes para download oferecem os seguintes benefícios:
Reduz o tamanho do app, aumentando a taxa de sucesso da instalação.
Melhora a integridade geral do sistema, já que vários apps podem compartilhar a mesma fonte usando um
provedor. Isso faz os usuários economizarem os dados móveis, a memória do smartphone e o espaço em disco. Nesse modelo, a fonte é buscada na rede quando necessário.
Para ter uma experiência prática com as fontes para download, consulte o app de exemplo
DownloadableFonts
(em inglês).
Como funcionam as Fontes para download?
Um provedor de fontes é um aplicativo que recupera fontes e as armazena em cache de forma local, para que outros apps possam solicitar e compartilhar fontes. A figura a seguir ilustra o processo.
Figura 1. Processo do "Fontes para download".
Noções básicas
Você pode usar o recurso Fontes para Download das seguintes maneiras, que são discutidas em detalhes
nas próximas seções:
Usar Fontes para Download com o Android Studio e o Google Play Services
Você pode configurar seu aplicativo para fazer o download de fontes usando o Android Studio 3.0 ou versões mais recentes. Para ajudar você
a começar a usar o recurso Fontes para Download, use o provedor de fontes do Google Play
Services.
No Layout Editor, selecione uma TextView. Em seguida, em Attributes,
selecione fontFamily > More Fonts.
Figura 2. Usando o Layout Editor.
A janela Resources será exibida.
No menu Origem, selecione Google Fonts.
Na caixa Fonts, selecione uma fonte na área "Downloadable".
Selecione Create downloadable font e clique em OK.
Figura 3. Como selecionar uma fonte na janela Resources.
O Android Studio gera automaticamente os arquivos XML relevantes que são necessários para renderizar a fonte
corretamente no app.
Figura 4. Visualização do arquivo de fonte.
Usar o recurso Fontes para Download de forma programática
A partir do Android 8.0 (nível 26 da API), o AndroidX Core oferece suporte total para fontes para download. Para
mais informações sobre como usar a biblioteca principal do AndroidX, consulte a
seção "Fontes para download" da biblioteca principal do AndroidX nesta página.
Para usar o recurso Fontes para Download de forma programática, interaja com duas classes principais:
Seu app recupera fontes do provedor de fontes usando a API FontsContract. Cada provedor tem o próprio conjunto de restrições para versões do Android e linguagem de consulta compatíveis. Para
ver mais informações sobre as versões do Android e o formato de consulta, leia a documentação do seu
provedor.
Para fazer o download de uma fonte, siga estas etapas:
Crie uma instância da classe android.graphics.fonts.FontRequest para solicitar a
fonte do provedor. Para criar uma solicitação, transmita os seguintes parâmetros:
A autoridade do provedor de fontes.
O pacote de provedor de fontes para confirmar a identidade do provedor.
A consulta de string da fonte. Para ver mais informações sobre formatos de consulta, leia a documentação do seu provedor de fontes, como o Google Fonts.
Uma lista de conjuntos de hashes para que os certificados confirmem a identidade do provedor.
Modifique o
método
onTypefaceRetrieved() para indicar que a solicitação de fonte foi concluída. Informe a fonte recuperada como parâmetro.
Você pode usar esse método para definir a fonte, conforme necessário. Por exemplo, você pode definir a fonte em uma
TextView.
Chame o método FontsContract.requestFont() para recuperar a fonte do provedor de
fontes. O método inicia uma verificação para determinar se a fonte existe no cache. Se
a fonte não estiver disponível localmente, ele vai chamar o provedor da fontes, recuperar a fonte
de forma assíncrona e transmitir o resultado para o callback. Transmita os seguintes parâmetros:
Uma instância da classe android.graphics.fonts.FontRequest
Um callback para receber os resultados da solicitação de fonte
Um gerenciador para buscar fontes em uma linha de execução
O exemplo de código a seguir ilustra o processo geral do recurso Fontes para Download:
Kotlin
valrequest=FontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs)valcallback=object:FontsContract.FontRequestCallback(){overridefunonTypefaceRetrieved(typeface:Typeface){// Your code to use the font goes here....}overridefunonTypefaceRequestFailed(reason:Int){// Your code to deal with the failure goes here....}}FontsContract.requestFonts(context,request,handler,null,callback)
Java
FontRequestrequest=newFontRequest("com.example.fontprovider.authority","com.example.fontprovider","my font",certs);FontsContract.FontRequestCallbackcallback=newFontsContract.FontRequestCallback(){@OverridepublicvoidonTypefaceRetrieved(Typefacetypeface){// Your code to use the font goes here....}@OverridepublicvoidonTypefaceRequestFailed(intreason){// Your code to deal with the failure goes here....}};FontsContract.requestFonts(context,request,handler,null,callback);
Para mais informações sobre como fazer o download de uma fonte de um provedor, consulte o app de exemplo
Fontes para download.
Usar fontes para download com o AndroidX Core
O AndroidX Core oferece suporte ao recurso Fontes para Download em dispositivos com a versão 14 ou mais recente da API do Android. O
pacote androidx.core.provider
contém classes FontsContractCompat e FontRequest para implementar
a compatibilidade com versões anteriores para o recurso Fontes para Download. As classes do AndroidX contêm métodos
semelhantes aos do framework, e o processo de download de fontes é semelhante ao
descrito na seção desta página sobre
como usar fontes para download de forma programática.
Para baixar fontes usando o AndroidX, importe as classes FontsContractCompat e
FontRequest do pacote androidx.core.provider. Crie
instâncias dessas classes em vez das classes
FontsContract e
android.graphics.fonts.FontRequest de framework.
Adicionar dependência do AndroidX Core
Para usar as classes FontsContractCompat e FontRequest, você precisa modificar as dependências do caminho de classe do projeto de app no ambiente de desenvolvimento.
Para adicionar o AndroidX Core ao projeto do aplicativo, adicione a seguinte dependência ao arquivo
build.gradle do app:
O Android 8.0 (nível 26 da API) e o AndroidX Core oferecem uma maneira mais rápida e conveniente de declarar uma
fonte personalizada como um recurso no layout XML. Isso significa que não é necessário empacotar a fonte como
um recurso. Você pode definir uma fonte personalizada para o tema inteiro, o que acelera a usabilidade de
vários pesos e estilos, como negrito, médio ou leve, quando fornecidos.
Crie um novo arquivo XML na pasta res/font.
Adicione um elemento raiz <font-family> e defina os atributos relacionados à fonte, conforme
mostrado no exemplo de arquivo XML abaixo:
Referencie o arquivo como @font/font_file_name no arquivo XML de layout. Você também
pode usar o
método
getFont()
para recuperar o arquivo de forma programática, como
getFont(R.font.font_file_name).
Declarar fontes antecipadamente no manifesto
A inflação do layout e a recuperação de recursos são tarefas síncronas. Por padrão, a primeira tentativa de recuperar fontes aciona uma solicitação para o provedor de fontes e, portanto, aumenta o tempo do primeiro layout. Para evitar atrasos, é possível declarar as fontes que precisam ser recuperadas antecipadamente no manifesto.
Depois que o sistema recupera a fonte do provedor, ela fica disponível imediatamente. Se a recuperação da fonte
demorar mais que o esperado, o sistema vai cancelar o processo de busca e usar a fonte
padrão.
Para declarar fontes antecipadamente no manifesto, siga as seguintes etapas:
Crie uma matriz de recursos em res/values/arrays.xml e declare as fontes que você
quer buscar antecipadamente.
Quando um provedor de fontes não estiver pré-instalado ou se você estiver usando a biblioteca AndroidX Core, declare
os certificados com que o provedor de fontes está conectado. O sistema usa os certificados para confirmar a identidade do provedor da fontes.
Siga as seguintes etapas para adicionar certificados:
Crie uma matriz de strings com os detalhes do certificado. Para mais informações sobre os detalhes do certificado, consulte a documentação do seu provedor de fontes.
Defina o atributo fontProviderCerts para a matriz.
android:fontProviderCerts="@array/certs"
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2026-10-24 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2026-10-24 UTC."],[],[]]