Android 8.0 (livello API 26) introduce i caratteri in XML, una funzionalità che consente di utilizzare i caratteri come risorse. Puoi aggiungere il file font
nella cartella res/font/
per raggruppare i caratteri come risorse. Questi caratteri
vengono compilati nel file R
e sono disponibili automaticamente in
Android Studio. Puoi accedere alle risorse dei caratteri utilizzando il tipo di risorsa font
. Ad esempio, per accedere a una risorsa di caratteri, utilizza @font/myfont
o R.font.myfont
.
Per utilizzare i caratteri nella funzionalità XML sui dispositivi con Android 4.1 (livello API 16) e versioni successive, utilizza Support Library 26.0. Per ulteriori informazioni sull'utilizzo della libreria di supporto, consulta la sezione Utilizzare la libreria di supporto.
Per aggiungere caratteri come risorse, svolgi i passaggi che seguono in Android Studio:
- Fai clic con il tasto destro del mouse sulla cartella res e vai a Nuovo > Directory di risorse Android. Viene visualizzata la finestra Nuova directory delle risorse.
- Nell'elenco Tipo di risorsa, seleziona Carattere, quindi fai clic su OK.
Nota: il nome della directory delle risorse deve essere font.
- Aggiungi i file dei caratteri nella cartella
font
.La struttura di cartelle seguente genera
R.font.dancing_script
,R.font.lobster
eR.font.typo_graphica
. - Fai doppio clic sul file dei caratteri per visualizzarne l'anteprima nell'editor.
Creare una famiglia di caratteri
Una famiglia di caratteri è un insieme di file di caratteri con dettagli su stile e spessore. In Android, puoi creare una nuova famiglia di caratteri come risorsa XML e accedervi come singola unità, anziché fare riferimento a ogni stile e spessore come risorse separate. In questo modo, consenti al sistema di selezionare il carattere corretto in base allo stile di testo in uso.
Per creare una famiglia di caratteri, svolgi i passaggi che seguono in Android Studio:
- Fai clic con il tasto destro del mouse sulla cartella
font
e seleziona Nuovo > File di risorse dei caratteri. Viene visualizzata la finestra Nuovo file di risorsa. - Inserisci il nome del file e fai clic su OK. La nuova risorsa XML per i caratteri si apre nell'editor.
- Racchiudi ogni file di caratteri, stile e attributo di spessore nell'elemento
<font>
. Il seguente codice XML mostra l'aggiunta di attributi relativi ai caratteri nella risorsa XML dei caratteri:<?xml version="1.0" encoding="utf-8"?> <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>
Utilizzare i caratteri nei layout XML
Utilizza i tuoi caratteri, un singolo file di caratteri o uno di una
famiglia di caratteri, negli oggetti TextView
o in stili usando l'attributo
fontFamily
.
Nota: quando utilizzi una famiglia di caratteri, TextView
cambia autonomamente, se necessario, per utilizzare i file dei caratteri della famiglia.
Aggiungere caratteri a un TextView
Per impostare un carattere per un TextView
, segui una di queste procedure:
- Nel file XML del layout, imposta l'attributo
fontFamily
sul file del carattere a cui vuoi accedere.<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/lobster"/>
- Apri la finestra Proprietà per impostare il carattere per
TextView
.- Seleziona una visualizzazione per aprire la finestra Proprietà.
Nota. La finestra Proprietà è disponibile solo quando è aperto l'editor di progettazione. Seleziona la scheda Design nella parte inferiore della finestra.
- Espandi la proprietà textAspetto, quindi seleziona il carattere dall'elenco fontFamily.
- Seleziona una visualizzazione per aprire la finestra Proprietà.
L'anteprima del layout di Android Studio, mostrata nel riquadro più a destra nella Figura 5, consente di visualizzare l'anteprima del carattere impostato in TextView
.
Aggiungere caratteri a uno stile
Apri il file styles.xml
e imposta l'attributo fontFamily
sul file del carattere a cui vuoi accedere.
<style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item> </style>
Utilizzare i caratteri in modo programmatico
Per recuperare i caratteri in modo programmatico, chiama il metodo getFont(int)
e fornisci l'identificatore della risorsa del carattere che vuoi recuperare. Questo metodo restituisce un
oggetto Typeface
. Anche se il sistema sceglie lo stile migliore per te dalle informazioni dei caratteri, puoi utilizzare il metodo setTypeface(android.graphics.Typeface, int)
per impostare il carattere tipografico con stili specifici.
Nota: il TextView
lo fa per te.
Kotlin
val typeface = resources.getFont(R.font.myfont) textView.typeface = typeface
Java
Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);
Utilizzare la libreria di supporto
Support Library 26.0 supporta caratteri in XML su dispositivi con Android 4.1 (livello API 16) e versioni successive.
Nota: quando dichiari le famiglie di caratteri nel layout XML tramite la libreria di supporto, utilizza lo spazio dei nomi app per assicurarti che i caratteri vengano caricati.
<?xml version="1.0" encoding="utf-8"?> <font-family xmlns:app="http://schemas.android.com/apk/res-auto"> <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/> <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" /> </font-family>
Per recuperare i caratteri in modo programmatico, chiama il metodo
ResourceCompat.getFont(Context, int)
e fornisci un'istanza di Context
e l'identificatore della risorsa.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);