Anda kini dapat menggunakan runtime resource overlay (RRO) untuk mengubah font. Dengan menambahkan kustom {i>font<i} untuk membuat paket {i>font<i}, Anda dapat menggunakan {i>font<i} dalam tema dan menggunakan RRO untuk menerapkan kustomisasi.
Selesaikan tugas berikut:
Struktur {i>file<i} contoh dan {i>file<i} contoh tersedia di custom-fonts.zip. Download, lalu ekstrak file ini secara lokal untuk Anda gunakan sendiri.
Membuat paket font
Untuk membuat paket font:
- Tambahkan semua file
ttf
font ke paket font di Partisivendor
. Contoh:vendor/[oem]/fonts/[oem]-sans/
- Buat file
Android.mk
untuk paket font. Contoh:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Pastikan modul akan diinstal di partisi
product
dalam Folderetc
. Untuk melakukannya, pastikan modul memiliki flag berikut:LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
Kode contoh yang diberikan di atas menggambarkan definisi lengkap modul paket font.
- Buat file bernama
fonts.mk
untuk paket font, lalu tambahkan fontttf
file kePRODUCT_PACKAGES
. Contoh:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Contoh:
PRODUCT_PACKAGES := \ [font name].ttf \
Membuat paket overlay perangkat
- Buat modul bernama
fonts_customization.xml
untuk ditambahkan ke build. Modul ini mengarah ke filefonts_customization.xml
yang berisi font keluarga dan memanggil file {i>make<i} dari semua paket {i>font<i}. Contoh:vendor/[oem]/[device]_overlay/fonts/Android.mk
- Buat jenis font:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
Tingkat root file harus berupa tag
fonts-modification
. Tambah jenis {i>font<i} untuk setiap paket {i>font<i} di bawah elemen ini. Selain itu, tambahkancustomizationType="new-named-family"
ke setiap jenis font, dan buat memastikan setiap komponen memiliki atributname
. Nama ini digunakan nanti untuk mengakses jenis font. File ini harus ditambahkan kefonts_customizations.xml
yang ditentukan sebelumnya diAndroid.mk
.Contoh yang diberikan di atas berisi file
fonts_customization.xml
yang valid. - Buat
fonts.mk
. Contoh:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Tambahkan
fonts_customization.xml
di bawah flagPRODUCT_PACKAGES
. - Panggil ke setiap paket font yang dibuat sebelumnya.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Tambahkan modul font ke build di bagian
PRODUCT_PACKAGES
, lalu build ulang. Font akan diinstal di sistem. - Pastikan file font
ttf
berada di Folder/product/fonts
di perangkat. - Verifikasi bahwa
fonts_customization.xml
ada di/product/etc/
pada perangkat seluler.
Menggunakan jenis font sistem baru
Untuk menggunakan jenis font sistem yang baru:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>