Menambahkan font kustom

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:

  1. Tambahkan semua file ttf font ke paket font di Partisi vendor. Contoh:

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

  2. Buat file Android.mk untuk paket font. Contoh:

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

  3. Pastikan modul akan diinstal di partisi product dalam 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 modul paket font.

  4. Buat file bernama fonts.mk untuk paket font, lalu tambahkan font ttf file ke PRODUCT_PACKAGES. Contoh:

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

    Contoh:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Membuat paket overlay perangkat

  1. Buat modul bernama fonts_customization.xml untuk ditambahkan ke build. Modul ini mengarah ke file fonts_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

  2. 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, tambahkan customizationType="new-named-family" ke setiap jenis font, dan buat memastikan setiap komponen memiliki atribut name. Nama ini digunakan nanti untuk mengakses jenis font. File ini harus ditambahkan ke 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. Contoh:

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

  4. Tambahkan fonts_customization.xml di bawah flag PRODUCT_PACKAGES.
  5. Panggil ke setiap paket font yang dibuat sebelumnya.

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

  6. Tambahkan modul font ke build di bagian PRODUCT_PACKAGES, lalu build ulang. Font akan diinstal di sistem.
  7. Pastikan file font ttf berada di Folder /product/fonts di perangkat.
  8. 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>