Android 8.0 (livello API 26) introduce i caratteri in XML, una funzionalità
consente di usare i caratteri come risorse. Puoi aggiungere il file font
in
la cartella res/font/
per raggruppare i caratteri come risorse. Questi caratteri
vengono compilate nel tuo file R
e sono disponibili automaticamente in
Android Studio. Puoi accedere alle risorse dei caratteri utilizzando il tipo di risorsa font
. Per
ad esempio per accedere a una risorsa di carattere,
usa @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 Utilizza la sezione Libreria di supporto.
Per aggiungere caratteri come risorse, svolgi i passaggi che seguono in Android Casa di produzione:
- Fai clic con il tasto destro del mouse sulla cartella res e vai a Nuovo > Directory delle risorse Android. La Viene visualizzata la finestra Nuova directory delle risorse.
- Nell'elenco Tipo di risorsa, seleziona carattere, poi fai clic su
Ok.
Nota: il nome della directory delle risorse deve essere carattere.
Figura 1. Aggiunta della directory delle risorse per il 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 sul file dei caratteri per visualizzarne l'anteprima nell'editor.
Figura 3. Anteprima del file del carattere.
Creare una famiglia di caratteri
Una famiglia di caratteri è un insieme di file di caratteri, ognuno con i dettagli relativi a stile e spessore. In Android, puoi creare una nuova famiglia di caratteri come risorsa XML e accedere come singola unità, invece di fare riferimento a ogni stile e peso risorse separate. In questo modo, il sistema seleziona il carattere corretto in base allo stile di testo utilizzato.
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 per i caratteri. La finestra Nuovo file di risorse . - 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 carattere, stile e attributo di peso nella
Elemento
<font>
. Il seguente XML illustra l'aggiunta di attributi relativi ai caratteri nel file XML della risorsa font:<?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 del carattere o uno di un
famiglia di caratteri, in TextView
o in stili usando
Attributo fontFamily
.
Nota: quando utilizzi una famiglia di caratteri, il
TextView
si attiva autonomamente, se necessario, per utilizzare
dei caratteri della famiglia.
Aggiungere caratteri a TextView
Per impostare un carattere per TextView
, esegui una delle seguenti operazioni:
seguenti:
- Nel file XML di layout, imposta l'attributo
fontFamily
su 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 l'editor di progettazione è aperto. Seleziona la scheda Design nella parte inferiore della finestra.
- Espandi la proprietà textAspetto e 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 di destra nella Figura 5.
consente di visualizzare l'anteprima del set di caratteri in TextView
.
![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=9&hl=it)
Figura 5. Visualizzazione dell'anteprima dei caratteri nell'anteprima del layout.
Aggiungere caratteri a uno stile
Apri il file styles.xml
e imposta fontFamily
al 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, richiama il metodo
getFont(int)
e fornire il metodo
l'identificatore di risorsa del carattere che vuoi recuperare. Questo metodo restituisce un
Typeface
oggetto. Anche se il sistema sceglie
il tuo stile dal carattere informazioni, puoi utilizzare
setTypeface(android.graphics.Typeface, int)
per impostare il carattere tipografico con stili specifici.
Nota: 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 i 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, richiama il metodo
metodo ResourceCompat.getFont(Context, int)
e fornire un
dell'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);