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-tugas ini:
Struktur file sampel dan file sampel disediakan di custom-fonts.zip . Unduh dan kemudian ekstrak file ini secara lokal untuk Anda gunakan sendiri.
Buat paket font
Untuk membuat paket font:
- Tambahkan semua file
ttffont ke paket font di partisivendor. Sebagai contoh:vendor/[oem]/fonts/[oem]-sans/ - Buat file
Android.mkuntuk paket font. Sebagai contoh:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk - Pastikan modul akan dipasang di partisi
productdi folderetcUntuk 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 dari modul paket font.
- Buat file bernama
fonts.mkuntuk paket font dan kemudian tambahkan file fontttfkePRODUCT_PACKAGES. Sebagai contoh:vendor/[oem]/fonts/[oem]-[fontname]/fonts.mkSebagai contoh:
PRODUCT_PACKAGES := \ [font name].ttf \
Buat paket overlay perangkat
- Buat modul bernama
fonts_customization.xmluntuk ditambahkan ke build. Modul ini menunjuk ke filefonts_customization.xmlyang berisi keluarga font dan memanggil file make dari semua paket font. Sebagai contoh:vendor/[oem]/[device]_overlay/fonts/Android.mk - Buat keluarga font:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xmlLevel root file harus berupa tag
fonts-modification. Tambahkan keluarga font untuk setiap paket font di bawah elemen ini. Selain itu, tambahkancustomizationType="new-named-family"ke setiap keluarga font, dan pastikan masing-masing memiliki atributname. Nama ini digunakan nanti untuk mengakses keluarga font. File ini harus ditambahkan ke modulfonts_customizations.xmlyang ditentukan sebelumnya diAndroid.mk.Contoh yang diberikan di atas berisi file
fonts_customization.xmlyang valid. - Buat
fonts.mk. Sebagai contoh:vendor/[oem]/[device]_overlay/fonts/fonts.mk - Tambahkan
fonts_customization.xmldi 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_PACKAGESlalu bangun kembali. Font akan diinstal pada sistem. - Verifikasi bahwa file font
ttfada di folder/product/fontspada perangkat. - Verifikasi bahwa
fonts_customization.xmlada 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>