Com o recurso de fontes para download, as APIs podem solicitar fontes de um aplicativo provedor em vez de
agrupar arquivos no app ou permitir que ele faça o download de fontes. As fontes para download estão disponíveis em
dispositivos com a versão 14 ou mais recente da API do Android pela biblioteca AndroidX Core.
O recurso "Fontes para download" oferece 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 aprender a usar as fontes para download na prática, consulte o
app de exemplo
DownloadableFonts.
Como funcionam as Fontes para download?
Um provedor de fontes é um aplicativo que recupera fontes e as armazena em cache localmente para que outros apps possam
solicitar e compartilhar fontes. A figura a seguir ilustra o processo.
Figura 1. Processo de "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 seções posteriores:
Usar o "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 um TextView. Em Atributos, selecione fontFamily > Mais fontes.
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 Criar fonte para download e clique em OK.
Figura 3. Selecionar uma fonte na janela Recursos.
O Android Studio gera automaticamente os arquivos XML relevantes necessários para renderizar a fonte
corretamente no app.
Figura 4. Visualizar o arquivo de fontes.
Usar fontes para download de forma programática
Desde o Android 8.0 (API de nível 26), o AndroidX Core oferece suporte total para o recurso "Fontes para download". Para
mais informações sobre como usar a biblioteca AndroidX Core, consulte a seção
Biblioteca AndroidX Core de fontes para download 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
mais informações sobre as versões do Android e o formato de consulta, consulte 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 mais informações sobre formatos de consulta, consulte 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. Forneça 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
A amostra de código a seguir ilustra o processo geral do "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
DownloadableFonts.
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 métodos 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 fazer o download de 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 a dependência do AndroidX Core
Para usar as classes FontsContractCompat e FontRequest, é necessário modificar as dependências do caminho de classe do projeto de app no ambiente de desenvolvimento.
Para adicionar o AndroidX Core ao projeto de aplicativo, adicione a seguinte dependência ao arquivo
build.gradle do app:
Usar o "Fontes para download" como recursos em XML
O Android 8.0 (API de nível 26) 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 a seguir:
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 do que o esperado, o sistema vai cancelar o processo de busca e usar a fonte padrão.
Para declarar fontes antecipadamente no manifesto, siga estas 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 os quais 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"
Fontes para download no Compose
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 2025-10-22 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 2025-10-22 UTC."],[],[]]