È ora possibile utilizzare gli overlay delle risorse di runtime (RRO) per modificare i caratteri. Aggiungendo caratteri personalizzati per creare un pacchetto di caratteri, puoi utilizzare i caratteri nei temi e utilizzare gli RRO per applicare le personalizzazioni.
Completa queste attività:
- Crea un pacchetto di caratteri
- Crea un pacchetto di overlay del dispositivo
- Utilizza la famiglia di caratteri di sistema aggiunta
Una struttura di file di esempio e file di esempio sono forniti in custom-fonts.zip . Scarica ed estrai questo file localmente per uso personale.
Crea un pacchetto di caratteri
Per creare un pacchetto di caratteri:
- Aggiungi tutti i file
ttf
dei caratteri al pacchetto di caratteri nella partizionevendor
. Per esempio:vendor/[oem]/fonts/[oem]-sans/
- Crea il file
Android.mk
per il pacchetto di caratteri. Per esempio:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Assicurati che il modulo venga installato nella partizione
product
nella cartellaetc
Per fare ciò, conferma che il modulo ha 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, quindi aggiungi i filettf
dei caratteri aPRODUCT_PACKAGES
. Per esempio:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Per esempio:
PRODUCT_PACKAGES := \ [font name].ttf \
Crea un pacchetto di overlay del dispositivo
- Crea un modulo chiamato
fonts_customization.xml
da aggiungere alla build. Questo modulo punta al filefonts_customization.xml
che contiene le famiglie di caratteri e richiama i file make di tutti i pacchetti di caratteri. Per esempio:vendor/[oem]/[device]_overlay/fonts/Android.mk
- Crea le famiglie di caratteri:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
Il livello root del file deve essere un tag
fonts-modification
. Aggiungi famiglie di caratteri per ciascuno dei pacchetti di caratteri sotto questo elemento. Inoltre, aggiungicustomizationType="new-named-family"
a ogni famiglia di caratteri e assicurati che ciascuna abbia un attributoname
. Questo nome verrà utilizzato successivamente per accedere alla famiglia di caratteri. Questo file deve essere aggiunto al modulofonts_customizations.xml
definito in precedenza inAndroid.mk
.L'esempio fornito sopra contiene un file
fonts_customization.xml
valido. - Crea
fonts.mk
. Per 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
e quindi ricostruisci. I caratteri verranno installati nel sistema. - Verificare che i file dei caratteri
ttf
si trovino nella cartella/product/fonts
sul dispositivo. - Verificare che
fonts_customization.xml
sia in/product/etc/
sul dispositivo.
Utilizza 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>