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.
0sem comentários ainda