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 sono 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 carattere,
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 Support Library, consulta la sezione Utilizzare la Support Library.
Per aggiungere caratteri come risorse, svolgi i passaggi che seguono in Android Studio:
- Fai clic con il pulsante destro del mouse sulla cartella res e vai a Nuovo > Directory delle 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.
Figura 1. Aggiunta della directory delle risorse del carattere.
- 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
.Figura 2. Aggiunta dei file dei caratteri nella directory
res/font
. - Fai doppio clic su un file dei caratteri per visualizzare l'anteprima dei caratteri del file nell'editor.
Figura 3. Anteprima del file del carattere.
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à, invece di fare riferimento a ogni stile e peso 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, procedi nel seguente modo in Android Studio:
- Fai clic con il pulsante destro del mouse sulla cartella
font
e seleziona Nuovo > File delle risorse dei caratteri. Viene visualizzata la finestra Nuovo file risorsa. - Inserisci il nome file e fai clic su OK. Il nuovo file XML della risorsa di carattere si apre nell'editor.
- Racchiudi ogni attributo file dei caratteri, stile e spessore nell'elemento
<font>
. Il seguente codice XML illustra l'aggiunta di attributi relativi ai caratteri nel file XML della risorsa carattere:<?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 un carattere di una famiglia di caratteri, negli oggetti TextView
o negli stili utilizzando l'attributo fontFamily
.
Nota: quando utilizzi una famiglia di caratteri, TextView
si attiva automaticamente per usare i file dei caratteri di quella famiglia.
Aggiungere caratteri a TextView
Per impostare un carattere per TextView
, esegui una delle seguenti operazioni:
- Nel file XML di 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 vista 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.
-
Figura 4. Seleziona il carattere dalla finestra Proprietà.
- Seleziona una vista per aprire la finestra Proprietà.
L'anteprima del layout di Android Studio, mostrata nel riquadro più a destra nella Figura 5, ti consente di visualizzare l'anteprima del set di caratteri in TextView
.
![Visualizzare l'anteprima dei caratteri nell'anteprima del layout](https://developer.android.google.cn/static/guide/topics/ui/images/look-and-feel/fonts-in-xml/xml-font-preview.png?authuser=5&hl=it)
Figura 5. Visualizzare l'anteprima dei caratteri nell'anteprima del layout.
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>
Utilizza i caratteri in modo programmatico
Per recuperare i caratteri in modo programmatico, chiama il metodo getFont(int)
e fornisci l'identificatore risorsa del carattere che vuoi recuperare. Questo metodo restituisce un oggetto Typeface
. Anche se il sistema sceglie lo stile migliore per te in base alle informazioni sui caratteri, puoi utilizzare il metodo setTypeface(android.graphics.Typeface, int)
per impostare il tipo di carattere con stili specifici.
Nota: l'TextView
esegue questa operazione 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 i caratteri in XML sui dispositivi con Android 4.1 (livello API 16) e versioni successive.
Nota: quando dichiari le famiglie di caratteri nel layout XML tramite la Support Library, 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 di risorsa.
Kotlin
val typeface = ResourcesCompat.getFont(context, R.font.myfont)
Java
Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);