O Android 8.0 (API de nível 26) introduz um novo recurso que permite usar fontes como recursos:
o Fontes em XML. Você pode adicionar o arquivo font
na pasta
res/font/
para agrupar fontes como recursos. Essas fontes
são compiladas no arquivo R
e ficam disponíveis automaticamente no
Android Studio. Você pode acessar os recursos de fontes com a ajuda de um novo
tipo de recurso, font
. Por exemplo, para acessar um recurso de fonte,
use @font/myfont
ou R.font.myfont
.
Para usar o recurso "Fontes em XML" em dispositivos com Android 4.1 (API de nível 16) ou versões mais recentes, use a Biblioteca de Suporte 26. Para ver mais informações sobre como usar a Biblioteca de Suporte, consulte a seção Usar a Biblioteca de Suporte.
Para adicionar fontes como recursos, siga as seguintes etapas no Android Studio:
- Clique com o botão direito do mouse na pasta res e acesse
New > Android resource directory.
A janela New Resource Directory será exibida.
- Na lista Resource type, selecione font e clique em
OK.
Observação: o nome do diretório de recursos precisa ser font.
Figura 1. Adicionar o diretório de recursos de fontes.
- Adicione seus arquivos de fontes na pasta font.
A estrutura de pasta abaixo gera
R.font.dancing_script
,R.font.lobster
eR.font.typo_graphica
.Figura 2. Adicionar os arquivos de fontes no diretório de recursos.
- Clique duas vezes em um arquivo de fontes para visualizar as fontes do arquivo no editor.
Figura 3. Visualizar o arquivo de fontes
Criar uma família de fontes
Uma família de fontes é um conjunto de arquivos de fontes com detalhes de estilo e peso. No Android, você pode criar uma nova família de fontes como um recurso XML e acessá-la como uma única unidade, em vez de referenciar cada estilo e peso como recursos separados. Ao fazer isso, o sistema pode selecionar a fonte correta com base no estilo de texto que você está tentando usar.
Para criar uma família de fontes, siga as seguintes etapas no Android Studio:
- Clique com o botão direito do mouse na pasta
font
e acesse New > Font resource file. A janela New Resource file será exibida. - Digite o nome do arquivo e clique em OK. O novo XML de recurso de fontes será aberto no editor.
- Inclua cada arquivo de fonte, estilo e atributo de peso no
elemento
<font>
. O XML a seguir ilustra como adicionar atributos relacionados à fonte no XML de recurso de fontes:<?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>
Usar fontes em layouts XML
Use suas fontes, de um único arquivo de fontes ou de uma
família de fontes, em um objeto TextView
ou em estilos. Para
adicionar fontes à TextView
ou em estilos, use o
atributo fontFamily
.
Observação: quando você usa uma família de fontes, a
TextView
é alternada por conta própria, conforme necessário, para usar
os arquivos de fonte dessa família.
Adicionar fontes a um TextVieW
Para definir uma fonte para a TextView
, siga um
dos seguintes procedimentos:
- No arquivo XML de layout, defina o atributo
fontFamily
para o arquivo de fontes que você quer acessar.<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/lobster"/>
- Abra a janela Properties para definir a fonte como
TextView
.- Selecione uma visualização para abrir a janela Properties.
Observação: a janela Properties só fica disponível quando o editor de design está aberto. Selecione a guia Design na parte inferior da janela.
- Expanda a propriedade textAppearance e, em seguida, selecione a fonte da lista fontFamily.
-
Figura 4. Selecionar a fonte da janela "Properties".
- Selecione uma visualização para abrir a janela Properties.
A visualização de layout do Android Studio, exibida no painel mais à direita da Figura 5,
permite que você veja a fonte definida na TextView
.

Figura 5. Visualizar fontes na visualização de layout.
Adicionar fontes ao estilo
Abra styles.xml
e defina o atributo fontFamily
para o arquivo de fontes que você quer acessar.
<style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item> </style>
Usar fontes de forma programática
Para recuperar fontes de forma programática, chame o
método getFont(int)
e informe o
identificador de recurso da fonte que você quer recuperar. Este método retorna um
objeto Typeface
. Embora o sistema escolha o melhor
estilo para você a partir das informações de fontes, você pode usar o
método setTypeface(android.graphics.Typeface, int)
para definir typeface com estilos específicos.
Observação: o TextView
já faz isso por você.
Kotlin
val typeface = resources.getFont(R.font.myfont) textView.typeface = typeface
Java
Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);
Usar a Biblioteca de Suporte
A Biblioteca de Suporte 26.0 oferece compatibilidade com o recurso "Fontes em XML" em dispositivos com o Android 4.1 (API de nível 16) ou versões mais recentes.
Observação: ao declarar famílias de fontes no layout XML por meio da Biblioteca de Suporte, use o namespace do app para garantir o carregamento das fontes.
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto"> <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/> <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" /> </font-family>
Para recuperar fontes de forma programática, chame
o método ResourceCompat.getFont(Context, int)
e forneça uma
instância do Contexto e o identificador de recursos.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);