O Android 8.0 (API de nível 26) introduz fontes em XML, um recurso que
permite usar fontes como recursos. 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. É possível acessar os recursos de fonte usando o tipo de recurso font
. Por
exemplo, para acessar um recurso de fonte,
use @font/myfont
ou R.font.myfont
.
Para usar o recurso de fontes no XML em dispositivos com Android 4.1 (API de nível 16) e versões mais recentes, use a Biblioteca de Suporte 26.0. Para 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 estas 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
res/font
. - Clique duas vezes em um arquivo de fontes para visualizar as fontes do arquivo no editor.
Figura 3. Visualização do arquivo da fonte.
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, você permite que o sistema selecione a fonte correta com base no estilo de texto que você está usando.
Para criar uma família de fontes, siga estas etapas no Android Studio:
- Clique com o botão direito do mouse na pasta
font
e selecione New > Font resource file. A janela New Resource file será exibida. - Insira 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 ou de uma
família de fontes, em objetos TextView
ou em estilos usando 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 uma TextView
Para definir uma fonte para um TextView
, siga um
destes 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. Selecione a fonte na janela Properties.
- Selecione uma visualização para abrir a janela Properties.
A visualização de layout do Android Studio, mostrada no painel mais à direita da Figura 5,
permite que você visualize a fonte definida na TextView
.
![Visualizar fontes na visualização de layout](https://developer.android.google.cn/static/guide/topics/ui/images/look-and-feel/fonts-in-xml/xml-font-preview.png?hl=pt)
Figura 5. Visualização de fontes na visualização de layout.
Adicionar fontes a um estilo
Abra o arquivo 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 das fontes, você pode usar o método
setTypeface(android.graphics.Typeface, int)
para definir a família tipográfica com estilos específicos.
Observação: o TextView
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 suporte a fontes em XML em dispositivos com o Android 4.1 (API de nível 16) e versões mais recentes.
Observação: ao declarar famílias de fontes no layout XML usando a Biblioteca de Suporte, use o namespace do app para garantir que as fontes sejam carregadas.
<?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 de Context
e o identificador de recurso.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);