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:
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".
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"
/>
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"
/>
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.
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.