Aggiungi un carattere come risorsa XML

Prova Compose
Jetpack Compose è il toolkit UI consigliato per Android. Scopri come utilizzare il testo in Compose.

Android 8.0 (livello API 26) introduce i caratteri in XML, una funzionalità che ti consente di utilizzare i caratteri come risorse. Puoi aggiungere il font file nella res/font/ cartella 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 la funzionalità dei caratteri in XML sui dispositivi con Android 4.1 (livello API 16) e versioni successive, utilizza la Support Library 26.0. Per ulteriori informazioni sull'utilizzo della Support Library, consulta la sezione Utilizzare la Support Library.

Per aggiungere i caratteri come risorse, svolgi i seguenti passaggi in Android Studio:

  1. Fai clic con il tasto destro del mouse sulla cartella res e vai a Nuovo > Directory delle risorse Android. Viene visualizzata la finestra Nuova directory di risorse.
  2. Nell'elenco Tipo di risorsa, seleziona font, quindi fai clic 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 delle cartelle riportata di seguito genera R.font.dancing_script, R.font.lobster e R.font.typo_graphica.

    Aggiunta dei file dei caratteri nella directory delle risorse

    Figura 2. Aggiunta dei file dei caratteri nella directory res/font.

  4. Fai doppio clic su un file di caratteri per visualizzare l'anteprima dei caratteri del file nell'editor. Visualizzare l'anteprima del file del carattere

    Figura 3. Visualizzazione dell'anteprima del file di caratteri.

Creare una famiglia di caratteri

Una famiglia di caratteri è un insieme di file di caratteri con dettagli di stile e spessore. In Android, puoi creare una nuova famiglia di caratteri come risorsa XML e accedervi come a una singola unità, anziché fare riferimento a ogni stile e spessore come risorse separate. In questo modo, il sistema seleziona il carattere corretto in base allo stile del testo che stai utilizzando.

Per creare una famiglia di caratteri, svolgi i seguenti passaggi 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 risorse.
  2. Inserisci il nome del file, quindi fai clic su Ok. Il nuovo file XML di risorse dei caratteri si apre nell'editor.
  3. Racchiudi ogni file di caratteri, stile e attributo di spessore nell' <font> elemento. Il seguente XML illustra l'aggiunta di attributi relativi ai caratteri nel file XML di risorse 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 caratteri, un singolo file di caratteri o un carattere di una famiglia di caratteri, negli TextView oggetti o negli stili utilizzando l' fontFamily attributo.

Nota:quando utilizzi una famiglia di caratteri, TextView passa automaticamente, se necessario, all'utilizzo dei file di caratteri di quella famiglia.

Aggiungere caratteri a un TextView

Per impostare un carattere per un TextView, procedi in uno dei seguenti modi:

  • Nel file XML del layout, imposta l'attributo fontFamily sul file di caratteri 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 l'editor di progettazione è aperto. Seleziona la scheda Progettazione nella parte inferiore della finestra.

    2. Espandi la proprietà textAppearance, quindi seleziona il carattere dall'elenco fontFamily.
    3. Selezione del carattere da Proprietà

      Figura 4. Selezione del carattere dalla 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 impostato in TextView.

Visualizzare l&#39;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 di caratteri a cui vuoi accedere.

  • <style name="customfontstyle" parent="@android:style/TextAppearance.Small">
        <item name="android:fontFamily">@font/lobster</item>
    </style>
  • Utilizzare i caratteri a livello di programmazione

    Per recuperare i caratteri a livello di programmazione, chiama il getFont(int) metodo e fornisci l' identificatore della risorsa del carattere che vuoi recuperare. Questo metodo restituisce un Typeface oggetto. Anche se il sistema sceglie lo stile migliore per te in base alle informazioni dei caratteri, puoi utilizzare il setTypeface(android.graphics.Typeface, int) metodo per impostare il carattere 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 Support Library

    La 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 a livello di programmazione, chiama il ResourceCompat.getFont(Context, int) metodo 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);