Risorse carattere

Una risorsa carattere definisce un carattere personalizzato che puoi utilizzare nella tua app. I caratteri possono essere singoli file dei caratteri o una raccolta di file dei caratteri, noti come famiglia di caratteri e definiti in XML.

Scopri anche come definire i caratteri in XML o utilizzare i caratteri scaricabili.

Carattere bundle

Puoi raggruppare i caratteri come risorse di un'app. I caratteri vengono compilati nel file R e sono automaticamente disponibili nel sistema come risorsa. Puoi quindi accedere a questi caratteri con l'aiuto del tipo di risorsa font.

percorso file:
res/font/filename.ttf (.ttf, .ttc, .otf o .xml)
Il nome file viene utilizzato come ID risorsa.
riferimento risorsa:
In XML: @[package:]font/font_name
:
<?xml version="1.0" encoding="utf-8"?>
<font-family>
  <font
    android:font="@[package:]font/font_to_include"
    android:fontStyle=["normal" | "italic"]
    android:fontWeight="weight_value" />
</font-family>
:
<font-family>
Obbligatorio. Questo deve essere il nodo radice.

Nessun attributo.

<font>
Definisce un solo carattere all'interno di una famiglia. Non contiene nodi figlio.

Attributi:

android:fontStyle
Parola chiave. Definisce lo stile del carattere. Questo attributo viene utilizzato quando il carattere viene caricato nello stack di caratteri e sostituisce qualsiasi informazione sullo stile nelle tabelle di intestazione del carattere. Se non specifichi l'attributo, l'app utilizza il valore delle tabelle di intestazione del carattere. Il valore della costante è normal o italic.
android:fontWeight
Numero intero. Lo spessore del carattere. Questo attributo viene utilizzato quando il carattere viene caricato nello stack di caratteri e sostituisce qualsiasi informazione sullo spessore nelle tabelle di intestazione del carattere. Il valore dell'attributo deve essere un multiplo di 100 compreso tra 100 e 900 inclusi. Se non specifichi l'attributo, l'app utilizza il valore delle tabelle di intestazione del carattere. I valori più comuni sono 400 per ponderazione normale e 700 per peso in grassetto.
esempio:
File XML salvato in res/font/lobster.xml:
<?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>

File XML salvato in res/layout/ che applica il carattere a un TextView:

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />

Carattere scaricabile

Una risorsa di carattere scaricabile definisce un carattere personalizzato che puoi utilizzare in un'app. Questo carattere non è disponibile nell'app stessa. ma viene recuperato da un provider di caratteri.

percorso file:
res/font/filename.xml Il nome file è l'ID risorsa.
riferimento risorsa:
In XML:@[package:]font/font_name
:
<?xml version="1.0" encoding="utf-8"?>
<font-family
    android:fontProviderAuthority="authority"
    android:fontProviderPackage="package"
    android:fontProviderQuery="query"
    android:fontProviderCerts="@[package:]array/array_resource" />
:
<font-family>
Obbligatorio. Questo deve essere il nodo radice.

:

android:fontProviderAuthority
Stringa. Obbligatorio. L'autorità del fornitore di caratteri che definisce la richiesta del carattere.
android:fontProviderPackage
Stringa. Obbligatorio. Il nome del pacchetto del provider di caratteri da utilizzare per la richiesta. Viene utilizzato per verificare l'identità del provider.
android:fontProviderQuery
Stringa. Obbligatorio. La query stringa del carattere. Consulta la documentazione del tuo fornitore di caratteri per informazioni sul formato di questa stringa.
android:fontProviderCerts
Risorsa array. Obbligatorio. Definisce gli insiemi di hash per i certificati utilizzati per firmare questo provider. Viene utilizzato per verificare l'identità del provider ed è obbligatorio solo se il provider non fa parte dell'immagine di sistema. Il valore può puntare a un singolo elenco (una risorsa array di stringhe) o a un elenco di elenchi (una risorsa array), in cui ogni singolo elenco rappresenta una raccolta di hash di firma. Per informazioni su questi valori, consulta la documentazione del tuo fornitore di caratteri.
esempio:
File XML salvato in res/font/lobster.xml:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    android:fontProviderAuthority="com.example.fontprovider.authority"
    android:fontProviderPackage="com.example.fontprovider"
    android:fontProviderQuery="Lobster"
    android:fontProviderCerts="@array/certs">
</font-family>

File XML salvato in res/values/ che definisce l'array di certificati:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="certs">
      <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
    </string-array>
</resources>

File XML salvato in res/layout/ che applica il carattere a un TextView:

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />