Thêm phông chữ tùy chỉnh

Bây giờ bạn có thể sử dụng lớp phủ tài nguyên thời gian chạy (RRO) để thay đổi phông chữ. Bằng cách thêm phông chữ tùy chỉnh để tạo gói phông chữ, bạn có thể sử dụng phông chữ trong chủ đề và sử dụng RRO để áp dụng các tùy chỉnh.

Hoàn thành các nhiệm vụ sau:

Cấu trúc tệp mẫu và tệp mẫu được cung cấp trong custom-fonts.zip . Tải xuống và sau đó giải nén tệp này cục bộ để bạn sử dụng.

Tạo một gói phông chữ

Để tạo một gói phông chữ:

  1. Thêm tất cả các tệp phông chữ ttf vào gói phông chữ trong phân vùng vendor . Ví dụ:

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

  2. Tạo tệp Android.mk cho gói phông chữ. Ví dụ:

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

  3. Đảm bảo mô-đun sẽ được cài đặt trong phân vùng product trong thư mục etc Để làm như vậy, hãy xác nhận mô-đun có các cờ sau:
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
    

    Mã mẫu được cung cấp ở trên minh họa định nghĩa đầy đủ về mô-đun gói phông chữ.

  4. Tạo một tệp có tên fonts.mk cho gói phông chữ và sau đó thêm tệp phông chữ ttf vào PRODUCT_PACKAGES . Ví dụ:

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

    Ví dụ:

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

Tạo gói lớp phủ thiết bị

  1. Tạo một mô-đun có tên là fonts_customization.xml để thêm vào bản dựng. Mô-đun này trỏ đến tệp fonts_customization.xml chứa các họ phông chữ và gọi tệp tạo của tất cả các gói phông chữ. Ví dụ:

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

  2. Tạo họ phông chữ:

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

    Cấp độ gốc của tệp phải là thẻ fonts-modification . Thêm họ phông chữ cho từng gói phông chữ trong thành phần này. Ngoài ra, hãy thêm customizationType="new-named-family" vào mỗi họ phông chữ và đảm bảo mỗi họ có một thuộc tính name . Tên này sau này được sử dụng để truy cập vào họ phông chữ. Tệp này phải được thêm vào mô-đun phông fonts_customizations.xml được xác định trước đó trong Android.mk .

    Mẫu được cung cấp ở trên chứa tệp fonts_customization.xml hợp lệ.

  3. Tạo phông fonts.mk Ví dụ:

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

  4. Thêm phông fonts_customization.xml dưới cờ PRODUCT_PACKAGES .
  5. Gọi vào từng gói phông chữ đã tạo trước đó.

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

  6. Thêm mô-đun phông chữ vào bản dựng trong PRODUCT_PACKAGES rồi xây dựng lại. Các phông chữ sẽ được cài đặt trên hệ thống.
  7. Xác minh rằng các tệp phông chữ ttf có trong thư mục /product/fonts trên thiết bị.
  8. Xác minh rằng fonts_customization.xml có trong /product/etc/ trên thiết bị.

Sử dụng họ phông chữ hệ thống mới

Để sử dụng họ phông chữ hệ thống mới:

<style name="customstyle">
    <item name="android:fontFamily">customfontfamily</item>
</style>