20 Mai, 2011 16:04

Personalizando fontes no Android

Veja abaixo algumas opções de personalizações de fontes:

Typeface

O Android possui três tipos padrões de fonte, ou famílias: Droid Sans, Droid Sans Mono e Droid Serif. Para utilizar uma delas, basta informar no atributo android:typeface o tipo a ser utilizado. Veja no exemplo a seguir as três famílias (mais o tipo normal) sendo utilizadas:

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/texto_fonte1" android:textSize="25sp"
    android:text="Utilizando fonte Sans"
    android:typeface="sans" 
    />
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/texto_fonte2" android:textSize="25sp"
    android:text="Utilizando fonte Serif"
    android:typeface="serif" 
    />
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/texto_fonte3" android:textSize="25sp"
    android:text="Utilizando fonte Sans"
    android:typeface="monospace" 
    />
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/texto_fonte4" android:textSize="25sp"
    android:text="Utilizando fonte Normal"
    android:typeface="normal" 
    />

O resultado obtido:

Diferentes famílias de fontes

Style

O estilo da fonte serve para dar ênfase ao texto. Pode ser normal, negrito ou itálico.

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/texto_fonte1" android:textSize="25sp"
    android:text="Fonte em 'negrito'"
    android:textStyle="bold"
    />

Para aplicar negrito e itálico ao mesmo tempo, basta utilizar "bold|italic".

Estilos das fontes

Tamanho da fonte

O atributo android:textsize especifica o tamanho da fonte. Seu valor é constituído de duas partes: um número de ponto flutuante e sua unidade de medida. A unidade pode ser em sp (scaled pixels, ou escala de pixels), px (pixels), dp (density-independent pixels, ou pixels de densidade independente), in (inches, polegadas) e mm (milímetros). O mais aconselhável é utilizar o sp, assim o tamanho da fonte é redimensionada de acordo com as propriedades de visualização do usuário.

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/texto_fonte2" android:textSize="15sp"
    android:text="Tamanho 15: normal" 
    />

Tamanho das fontes

Sombra

Abaixo, exemplo de como aplicar sombra:

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/texto_fonte1" android:textSize="25sp"
    android:text="Texto com sombra verde"
    android:shadowColor="#00FF00"
    android:shadowDx="1"
    android:shadowDy="1"
    android:shadowRadius="1.2"
    />

Sombra do texto

Você pode usar quatro diferentes atributos para configurar a sombra de uma fonte:

  • android:shadowColor: cor da sombra
  • android:shadowRadius: o raio da sombra
  • android:shadowDx: o distanciamento horizontal da sombra em relação ao texto
  • android:shadowDy: o distanciamento vertical da sombra em relação ao texto

Usando outras fontes

Vamos utilizar como exemplo a fonte Mail Ray Stuff. Salve ela na pasta assets do seu projeto (se a pasta não existir, crie). A TextView deve ter o seguinte conteúdo:

<TextView  
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/hello" 
     android:id="@+id/texto_fonte"  
     android:textSize="25sp"/>
</TextView>

No método onCreate(), coloque o seguinte código:

TextView txt = (TextView) findViewById(R.id.texto_fonte);  
Typeface font = Typeface.createFromAsset(getAssets(), "mailrays.ttf");  
txt.setTypeface(font);

O código é bem simples de se entender: a classe TypeFace tem o método createFromAsset. Ele recebe como parâmetro a pasta default dos assets e o nome do arquivo de fonte a ser utilizado.

Fonte personalizada

Vale ressaltar que quando se fala de fontes customizáveis, tenha sempre em mente que elas podem não funcionar corretamente, principalmente se ela não possuir todos os caracteres especiais que a localização pode vir a exigir.

Ao navegar neste site, você consente o uso de cookies nossos e de terceiros, que coletam informações anônimas e são essenciais para melhorar sua experiência em nosso site.