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ữ:
- Thêm tất cả các tệp phông chữ
ttf
vào gói phông chữ trong phân vùngvendor
. Ví dụ:vendor/[oem]/fonts/[oem]-sans/
- Tạo tệp
Android.mk
cho gói phông chữ. Ví dụ:vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Đảm bảo mô-đun sẽ được cài đặt trong phân vùng
product
trong thư mụcetc
Để 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ữ.
- 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àoPRODUCT_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ị
- 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ệpfonts_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
- 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êmcustomizationType="new-named-family"
vào mỗi họ phông chữ và đảm bảo mỗi họ có một thuộc tínhname
. 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ôngfonts_customizations.xml
được xác định trước đó trongAndroid.mk
.Mẫu được cung cấp ở trên chứa tệp
fonts_customization.xml
hợp lệ. - Tạo phông
fonts.mk
Ví dụ:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Thêm phông
fonts_customization.xml
dưới cờPRODUCT_PACKAGES
. - 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)
- 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. - 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ị. - 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>