Boteco Digital

Colocando fontes customizadas no Android

Como você já deve saber, as fontes disponiveis no Android são bastante limitadas, se resumindo as seguintes opções:

android:fontFamily="sans-serif"           // roboto regular
android:fontFamily="sans-serif-light"     // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed
android:fontFamily="sans-serif-thin"      // roboto thin (android 4.2)
android:fontFamily="sans-serif-medium"    // roboto medium (android 5.0)

Mas via código podemos inserir outras fontes, sendo que o aandroid aceita fontes no formato ttf, então se sua fonte estiver em outro formato você deve convertê-la para este, o que pode ser feito no site Everything Fonts.

Com as fontes em mão, devemos colocá-las no projeto dentro da pasta assets, recomendo criar outra pasta dentro dela chamada fontes para melhor organização, ficando assim assets/fontes/nome_fonte.ttf.

Agora devemos criar um objeto Typeface.

	Typeface font = Typeface.createFromAsset( getAssets() , "fontes/IndieFlower.ttf");

Lembrando que nossa fonte IndieFlower.ttf dentro da pasta assets por isso utilizamos o método createFromAsset, que recebe o AssetManager e o caminho da fonte dentro dele. Se quisermos utilizar uma fonte que está dentro do SDCard por exemplo devemos utilizar outro método.

String fontPath = Environment.getExternalStorageDirectory()+"/Gabrielle.ttf";
Typeface font = Typeface.createFromFile( fontPath );

Lembrando que estamos acessando o SDCard então nossa aplicação deve ter permissão de acesso, para isso colocamos o código abaixo no nosso AndroidManifest.xml.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Agora com o objeto Typeface basta inserir via programação no componente desejado.

TextView text = (TextView) findViewById(R.id.text);
text.setTypeface(font);

Lembrando que podemos utilizar em outros componentes EditText, Button, etc.

Categorias Android
comments powered by Disqus