Aggiungi un carattere come risorsa XML

Prova il metodo Scrivi
Jetpack Compose è il toolkit per l'interfaccia utente consigliato per Android. Scopri come utilizzare il testo in Scrittura.

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:

  1. 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.
  2. Nell'elenco Tipo di risorsa, seleziona Carattere, quindi fai clic su OK.

    Nota: il nome della directory delle risorse deve essere font.

    Aggiunta della directory delle risorse dei caratteri

    Figura 1. Aggiunta della directory delle risorse dei caratteri.

  3. Aggiungi i file dei caratteri nella cartella font.

    La struttura di cartelle seguente genera R.font.dancing_script, R.font.lobster e R.font.typo_graphica.

    Aggiunta dei file dei caratteri nella directory delle risorse

    Figura 2. Aggiungere i file dei caratteri nella directory res/font.

  4. Fai doppio clic sul file dei caratteri per visualizzarne l'anteprima nell'editor. Visualizzazione dell'anteprima del file del carattere

    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à, 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:

  1. 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.
  2. Inserisci il nome del file e fai clic su OK. La nuova risorsa XML per i caratteri si apre nell'editor.
  3. 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.
    1. 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.

    2. Espandi la proprietà textAspetto, quindi seleziona il carattere dall'elenco fontFamily.
    3. Selezionare il carattere da Proprietà

      Figura 4. Seleziona il carattere dalla 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.

Anteprima dei caratteri nell&#39;anteprima del layout

Figura 5. Visualizzazione dell'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>
  • 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);