Fonts em XML

Android 8.0 (API nível 26) introduz uma nova funcionalidade, Fontes em XML, que lhe permite utilizar fontes como recursos. Pode adicionar o ficheiro font no ficheiro res/font/ pasta para agrupar fontes como recursos. Estas fontes são compiladas no seu ficheiro R e estão automaticamente disponíveis no Android Studio. Pode aceder aos recursos das fontes com a ajuda de um novo tipo de recurso, font. Por exemplo, para aceder a um recurso de fonte, utilize @font/myfont, ou R.font.myfont.

Para utilizar a funcionalidade Fontes em XML em dispositivos com Android 4.1 (API nível 16) e superior, utilizar a Biblioteca de Suporte 26. Para mais informações sobre a utilização da biblioteca de suporte, consultar a secção Utilização da biblioteca de suporte.

Para adicionar fontes como recursos, executar os seguintes passos no Android Studio:

  1. clique direito na pasta res e vá para New > directório de recursos do Android.

    A janela New Resource Directory aparece.

  2. Na lista de tipo de recurso, seleccionar fonte, e depois clicar em OK.

    Nota: O nome do directório de recursos deve ser font.

    Adicionando o directório de recursos de fontes

    Figura 1. Adicionando o directório de recursos de fontes

  3. Adicionar os seus ficheiros de fontes na pasta de fontes.

    A estrutura de pastas abaixo gera R.font.dancing_scriptR.font.lobster, e R.font.typo_graphica.

    Adicionando os ficheiros de fontes no directório de recursos

    Figura 2. Adicionando os ficheiros de fontes no directório de recursos

  4. Clique duas vezes num ficheiro de fontes para pré-visualizar as fontes do ficheiro no editor. Pré-visualização do ficheiro da fonte

    Figure 3. Pré-visualização do ficheiro da fonte

Criar uma família de fontes

Uma família de fontes é um conjunto de ficheiros de fontes juntamente com o seu estilo e detalhes de peso. No Android, pode criar uma nova família de fontes como um recurso XML e aceder a ela como uma única unidade, em vez de se referir a cada estilo e peso como recursos separados. Ao fazer isto, o sistema pode seleccionar a fonte correcta com base no estilo de texto que está a tentar utilizar.

Para criar uma família de fontes, execute os seguintes passos no Estúdio Android:

  1. clique direito no ficheiro font e vá para New > Font resource file. Aparece a janela New Resource File.
  2. Enterrometer o nome do ficheiro, e depois clicar em OK. O novo recurso de fonte XML abre-se no editor.
  3. Incluir cada ficheiro de fonte, estilo, e atributo de peso no elemento <font>. O seguinte XML ilustra a adição de atributos relacionados com fontes no recurso de fontes XML:
    <?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>

Utilizar fontes em layouts XML

Utilizar as suas fontes, seja um único ficheiro de fontes ou uma fonte de uma família de fontes, num objecto TextView ou em estilos. Para adicionar fontes ao TextView ou em estilos, use o atributo fontFamily.

Note: Quando se utiliza uma família de fontes, o atributo TextView muda por si próprio, conforme necessário, para utilizar os ficheiros de fontes dessa família.

Adicionar fontes a um TextView

Para definir uma fonte para o TextView, faça uma das seguintes opções:

  • No ficheiro XML de layout, defina o fontFamily atributo para o ficheiro da fonte que pretende aceder.
    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/lobster"/>
  • Abra a janela de Propriedades para definir a fonte para o TextView.
    1. Seleccionar uma vista para abrir a janela de Propriedades.

      Nota: A janela de Propriedades só está disponível quando o editor de design está aberto. Seleccione o separador Design na parte inferior da janela.

    2. Expandir a propriedade textAppearance, e depois seleccionar a fonte da lista fontFamily.
    3. Seleccionar a fonte de Properties

      Figure 4. Seleccionando a fonte da janela Propriedades

A pré-visualização do layout do Android Studio, mostrada no painel mais à direita da Figura 5, permite pré-visualizar a fonte definida no TextView.

Pré-visualização das fontes na pré-visualização do layout

Figure 5. Pré-visualização das fontes na pré-visualização do layout

Adicionar fontes ao estilo

Abrir o styles.xml, e definir o atributo fontFamily para o ficheiro de fontes que pretende aceder.

  • <style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item></style>
  • Utilizar fontes programmaticamente

    Para recuperar fontes programmaticamente, chame o método getFont(int) e forneça o identificador do recurso da fonte que pretende recuperar. Este método retorna um objecto Typeface. Embora o sistema escolha o melhor estilo para si a partir da informação das fontes, pode usar o método setTypeface(android.graphics.Typeface, int) para definir o tipo de letra com estilos específicos.

    Nota: O TextView já o faz por si.

    Kotlin

    val typeface = resources.getFont(R.font.myfont)textView.typeface = typeface

    Java

    Typeface typeface = getResources().getFont(R.font.myfont);textView.setTypeface(typeface);

    Utilizar a biblioteca de apoio

    A Biblioteca de Apoio 26.0 fornece suporte às Fontes em XML nos dispositivos que executam Android 4.1 (API nível 16) e superior.

    Nota: Quando declarar famílias de fontes no layout XML através da biblioteca de suporte, utilize o espaço de nomes da aplicação para assegurar o carregamento das suas 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>

    Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *