Giờ đây, 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ữ tuỳ chỉnh để tạo gói phông chữ, bạn có thể sử dụng phông chữ trong giao diện và sử dụng RRO để áp dụng các tuỳ 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 rồi giải nén tệp này trên máy tính để sử dụng.
Tạo gói phông chữ
Cách tạo gói phông chữ:
- Thêm tất cả tệp
ttf
phông chữ 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 rằng 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 rằng 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 hoạ đị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ữ, sau đó thêm các 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 gia đình phông chữ và gọi các 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 bộ 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 bộ phông chữ cho từng gói phông chữ trong phần tử này. Ngoài ra, hãy thêmcustomizationType="new-named-family"
vào mọi bộ phông chữ và đảm bảo rằng mỗi bộ phông chữ đều có thuộc tínhname
. Tên này sẽ được dùng sau để truy cập vào bộ phông chữ. Bạn phải thêm tệp này vào mô-đunfonts_customizations.xml
đã xác định trước đó trongAndroid.mk
.Mẫu được cung cấp ở trên chứa một tệp
fonts_customization.xml
hợp lệ. - Tạo
fonts.mk
. Ví dụ:vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Thêm
fonts_customization.xml
vào 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 tạo lại. 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
nằm trong thư mục/product/fonts
trên thiết bị. - Xác minh rằng
fonts_customization.xml
nằm trong/product/etc/
trên thiết bị.
Sử dụng bộ phông chữ hệ thống mới
Cách sử dụng bộ phông chữ hệ thống mới:
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>