A partire da Android-Studio 3.0 è molto semplice cambiare la famiglia di caratteri
Utilizzando la libreria di supporto 26, funzionerà su dispositivi che eseguono l'API Android versione 16 e successive
Crea una cartella font
nella res
directory. Scarica il font che vuoi e incollalo nella font
cartella. La struttura dovrebbe essere qualcosa come sotto
Nota: a partire da Android Support Library 26.0, è necessario dichiarare entrambi i set di attributi (android: e app:) per assicurarsi che i caratteri vengano caricati su dispositivi con Api 26 o versioni precedenti.
Ora puoi cambiare carattere nel layout usando
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/dancing_script"
app:fontFamily="@font/dancing_script"/>
Per cambiare Programatically
Typeface typeface = getResources().getFont(R.font.myfont);
//or to support all versions use
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);
textView.setTypeface(typeface);
Per cambiare carattere usando styles.xml crea uno stile
<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 applica questo stile a TextView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Regular"/>
puoi anche creare la tua famiglia di caratteri
- Fare clic con il tasto destro del mouse sulla cartella dei caratteri e selezionare Nuovo> File delle risorse dei caratteri . Viene visualizzata la finestra Nuovo file di risorse.
- Immettere il nome del file , quindi fare clic su OK . La nuova risorsa di font XML si apre nell'editor.
Scrivi qui la tua famiglia di caratteri, ad esempio
<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>
questa è semplicemente una mappatura di uno specifico fontStyle e fontWeight sulla risorsa font che verrà utilizzata per il rendering di quella specifica variante. I valori validi per fontStyle sono normali o in corsivo; e fontWeight è conforme alle specifiche di peso del font CSS
1. Per cambiare fontfamily nel layout è possibile scrivere
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/lobster"/>
2. Per modificare a livello di codice
Typeface typeface = getResources().getFont(R.font.lobster);
//or to support all versions use
Typeface typeface = ResourcesCompat.getFont(context, R.font.lobster);
textView.setTypeface(typeface);
Per modificare il carattere dell'intera app Aggiungi queste due righe in 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>
Consulta la documentazione , tutorial sui caratteri personalizzati Android per maggiori informazioni