Anda sekarang dapat menggunakan runtime resource overlay (RRO) untuk mengubah font. Dengan menambahkan font khusus untuk membuat paket font, Anda dapat menggunakan font dalam tema dan menggunakan RRO untuk menerapkan penyesuaian.
Selesaikan tugas berikut:
Contoh struktur file dan contoh file disediakan di custom-fonts.zip . Unduh dan ekstrak file ini secara lokal untuk Anda gunakan sendiri.
Buat paket font
Untuk membuat paket font:
- Tambahkan semua file font
ttf
ke paket font di partisivendor
. Misalnya:vendor/[oem]/fonts/[oem]-sans/
- Buat file
Android.mk
untuk paket font. Misalnya:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Pastikan modul akan dipasang di partisi
product
di folderetc
. Untuk melakukannya, konfirmasikan bahwa modul memiliki tanda berikut:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
Contoh kode yang diberikan di atas mengilustrasikan definisi lengkap modul paket font.
- Buat file bernama
fonts.mk
untuk paket font dan kemudian tambahkan file fontttf
kePRODUCT_PACKAGES
. Misalnya:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Misalnya:
PRODUCT_PACKAGES := \ [font name].ttf \
Buat paket overlay perangkat
- Buat modul bernama
fonts_customization.xml
untuk ditambahkan ke build. Modul ini menunjuk ke filefonts_customization.xml
yang berisi keluarga font dan memanggil file make dari semua paket font. Misalnya:vendor/[oem]/[device]_overlay/fonts/Android.mk
- Buat keluarga font:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
Tingkat akar file harus berupa tag
fonts-modification
. Tambahkan jenis font untuk setiap paket font di bawah elemen ini. Selain itu,customizationType="new-named-family"
ke setiap jenis font, dan pastikan setiap jenis font memiliki atributname
. Nama ini nantinya digunakan untuk mengakses keluarga font. File ini harus ditambahkan ke modulfonts_customizations.xml
yang ditentukan sebelumnya diAndroid.mk
.Contoh yang diberikan di atas berisi file
fonts_customization.xml
yang valid. - Buat
fonts.mk
. Misalnya:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Tambahkan
fonts_customization.xml
di bawah benderaPRODUCT_PACKAGES
. - Panggil ke masing-masing paket font yang dibuat sebelumnya.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Tambahkan modul font ke build di bawah
PRODUCT_PACKAGES
lalu buat ulang. Font akan diinstal pada sistem. - Verifikasi bahwa file font
ttf
ada di folder/product/fonts
pada perangkat. - Verifikasi bahwa
fonts_customization.xml
ada di/product/etc/
pada perangkat.
Gunakan keluarga font sistem baru
Untuk menggunakan keluarga font sistem baru:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>