A partir do Android-Studio 3.0, é muito fácil mudar a família de fontes
Usando a biblioteca de suporte 26, ele funcionará em dispositivos executando a API Android versão 16 e superior
Crie uma pasta font
no res
diretório. Baixe a fonte que desejar e cole-a dentro da font
pasta. A estrutura deve ser algo como abaixo
Nota: A partir da Biblioteca de suporte do Android 26.0, você deve declarar os dois conjuntos de atributos (android: e app:) para garantir que suas fontes sejam carregadas em dispositivos executando o Api 26 ou inferior.
Agora você pode alterar a fonte no layout usando
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/dancing_script"
app:fontFamily="@font/dancing_script"/>
Para mudar programaticamente
Typeface typeface = getResources().getFont(R.font.myfont);
//or to support all versions use
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
textView.setTypeface(typeface);
Para alterar a fonte usando styles.xml, crie um estilo
<style name="Regular">
<item name="android:fontFamily">@font/dancing_script</item>
<item name="fontFamily">@font/dancing_script</item>
<item name="android:textStyle">normal</item>
</style>
e aplique esse estilo a TextView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Regular"/>
você também pode criar sua própria família de fontes
- Clique com o botão direito do mouse na pasta fonte e vá para Novo> Arquivo de Recurso Fonte . A janela Novo arquivo de recurso é exibida.
- Digite o nome do arquivo e clique em OK . O novo XML do recurso de fonte é aberto no editor.
Escreva sua própria família de fontes aqui, por exemplo
<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>
isso é simplesmente um mapeamento de um fontStyle e fontWeight específico para o recurso de fonte que será usado para renderizar essa variante específica. Os valores válidos para fontStyle são normais ou itálicos; e fontWeight está em conformidade com a especificação de peso da fonte CSS
1. Para alterar a família da fonte no layout, você pode escrever
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/lobster"/>
2. Alterar programaticamente
Typeface typeface = getResources().getFont(R.font.lobster);
//or to support all versions use
Typeface typeface = ResourcesCompat.getFont(context, R.font.lobster);
textView.setTypeface(typeface);
Para alterar a fonte de todo o aplicativo Adicione essas duas linhas no AppTheme
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:fontFamily">@font/your_font</item>
<item name="fontFamily">@font/your_font</item>
</style>
Consulte o Tutorial sobre documentação , fontes personalizadas do Android Para obter mais informações