Ora puoi utilizzare gli overlay delle risorse di runtime per cambiare i caratteri. Aggiungendole per creare un pacchetto di caratteri, puoi utilizzare i caratteri nei temi e utilizzare gli RRO per applicare personalizzazioni.
Completa le seguenti attività:
- Creare un pacchetto di caratteri
- Creare un pacchetto di overlay del dispositivo
- Utilizzare la famiglia di caratteri di sistema aggiunta
Una struttura di file e file di esempio sono forniti in custom-fonts.zip Scarica ed estrai questo file in locale per uso personale.
Creare un pacchetto di caratteri
Per creare un pacchetto di caratteri:
- Aggiungi tutti i file
ttf
dei caratteri al pacchetto di caratteri nell'vendor
partizione. Ad esempio:vendor/[oem]/fonts/[oem]-sans/
- Crea il file
Android.mk
per il pacchetto del carattere. Ad esempio:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Assicurati che il modulo venga installato nella partizione
product
all'internoetc
cartella. Per farlo, verifica che il modulo abbia i seguenti flag:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
Il codice di esempio fornito sopra illustra una definizione completa di un modulo del pacchetto di caratteri.
- Crea un file denominato
fonts.mk
per il pacchetto di caratteri e aggiungi il caratterettf
file inPRODUCT_PACKAGES
. Ad esempio:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Ad esempio:
PRODUCT_PACKAGES := \ [font name].ttf \
Creare un pacchetto di overlay del dispositivo
- Crea un modulo denominato
fonts_customization.xml
da aggiungere alla build. Questo modulo rimanda al filefonts_customization.xml
che contiene il carattere famiglie e chiama i file di creazione di tutti i pacchetti di caratteri. Ad esempio:vendor/[oem]/[device]_overlay/fonts/Android.mk
- Crea le famiglie di caratteri:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
Il livello principale del file deve essere un tag
fonts-modification
. Aggiungi famiglie di caratteri per ciascuno dei pacchetti di caratteri presenti in questo elemento. Inoltre, aggiungicustomizationType="new-named-family"
a ogni famiglia di caratteri e rendi che ognuno abbia un attributoname
. Questo nome verrà utilizzato in seguito per accedere famiglia di caratteri. Questo file deve essere aggiunto afonts_customizations.xml
definito in precedenza inAndroid.mk
.L'esempio fornito sopra contiene un file
fonts_customization.xml
valido. - Crea
fonts.mk
. Ad esempio:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Aggiungi
fonts_customization.xml
sotto il flagPRODUCT_PACKAGES
. - Richiama ciascuno dei pacchetti di caratteri creati in precedenza.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Aggiungi il modulo del carattere alla build in
PRODUCT_PACKAGES
, quindi ricrealo. I caratteri verranno installati sul sistema. - Verifica che i file dei caratteri
ttf
siano nell'elenco/product/fonts
cartella sul dispositivo. - Verifica che
fonts_customization.xml
si trovi in/product/etc/
sul dispositivo.
Utilizzare la nuova famiglia di caratteri di sistema
Per utilizzare la nuova famiglia di caratteri di sistema:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>