O Android 8.0 (API de nível 26) introduz fontes em XML, um recurso que
permite que você use 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
. Para
exemplo, para acessar um recurso de fonte,
use @font/myfont
ou R.font.myfont
.
Para usar o recurso de fontes em XML em dispositivos com Android 4.1 (nível 16 da API) e versões mais recentes, use a Biblioteca de Suporte 26.0. Para mais informações sobre o uso da Biblioteca de Suporte, consulte Usar a Biblioteca de Suporte.
Para adicionar fontes como recursos, siga estas etapas no Android Estúdio:
- Clique com o botão direito do mouse na pasta res e acesse Novo > Diretório de recursos do Android (link em inglês). A A janela New Resource Directory será exibida.
- Na lista Tipo de recurso, selecione fonte 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. Adicione os arquivos de fonte ao 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 usado.
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 Novo > Arquivo de recurso de fonte. 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 fonte
família de fontes, em TextView
objetos ou em estilos usando o
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 uma TextView
, siga um dos
seguinte:
- 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 na Figura 5,
permite visualizar a fonte definida na TextView
.
![Visualizar fontes na visualização de layout](https://developer.android.com/static/guide/topics/ui/images/look-and-feel/fonts-in-xml/xml-font-preview.png?authuser=0000&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 fontFamily
ao arquivo de fonte 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 estilo das fontes informações, você pode usar o
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 (nível 16 da API) e versões mais recentes.
Observação: Quando você declara famílias de fontes no layout XML usando a Biblioteca de Suporte, Use o namespace app para garantir que suas 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 um
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);