Menambahkan Font Kustom

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:

  1. Tambahkan semua file ttf font ke paket font di partisi vendor . Sebagai contoh:

    vendor/[oem]/fonts/[oem]-sans/

  2. Buat file Android.mk untuk paket font. Sebagai contoh:

    vendor/[oem]/fonts/[oem]-[fontname]/Android.mk

  3. Pastikan modul akan dipasang di partisi product di folder etc 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 dari modul paket font.

  4. Buat file bernama fonts.mk untuk paket font dan kemudian tambahkan file font ttf ke PRODUCT_PACKAGES . Sebagai contoh:

    vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk

    Sebagai contoh:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Buat paket overlay perangkat

  1. Buat modul bernama fonts_customization.xml untuk ditambahkan ke build. Modul ini menunjuk ke file fonts_customization.xml yang berisi keluarga font dan memanggil file make dari semua paket font. Sebagai contoh:

    vendor/[oem]/[device]_overlay/fonts/Android.mk

  2. Buat keluarga font:

    vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml

    Level root file harus berupa tag fonts-modification . Tambahkan keluarga font untuk setiap paket font di bawah elemen ini. Selain itu, tambahkan customizationType="new-named-family" ke setiap keluarga font, dan pastikan masing-masing memiliki atribut name . Nama ini digunakan nanti untuk mengakses keluarga font. File ini harus ditambahkan ke modul fonts_customizations.xml yang ditentukan sebelumnya di Android.mk .

    Contoh yang diberikan di atas berisi file fonts_customization.xml yang valid.

  3. Buat fonts.mk . Sebagai contoh:

    vendor/[oem]/[device]_overlay/fonts/fonts.mk

  4. Tambahkan fonts_customization.xml di bawah bendera PRODUCT_PACKAGES .
  5. Panggil ke masing-masing paket font yang dibuat sebelumnya.

    $(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)

  6. Tambahkan modul font ke build di bawah PRODUCT_PACKAGES lalu bangun kembali. Font akan diinstal pada sistem.
  7. Verifikasi bahwa file font ttf ada di folder /product/fonts pada perangkat.
  8. 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>