ตอนนี้คุณใช้การวางซ้อนทรัพยากรรันไทม์ (RRO) เพื่อเปลี่ยนแบบอักษรได้แล้ว การเพิ่มแบบอักษรที่กำหนดเองเพื่อสร้างแพ็กเกจแบบอักษรจะช่วยให้คุณใช้แบบอักษรในธีมและ RRO เพื่อใช้การปรับแต่งได้
ทํางานต่อไปนี้ให้เสร็จสมบูรณ์
โครงสร้างไฟล์ตัวอย่างและไฟล์ตัวอย่างมีอยู่ใน custom-fonts.zip ดาวน์โหลดและแตกไฟล์นี้ในเครื่องเพื่อใช้งานเอง
สร้างแพ็กเกจแบบอักษร
วิธีสร้างแพ็กเกจแบบอักษร
- เพิ่มไฟล์
ttf
แบบอักษรทั้งหมดลงในแพ็กเกจแบบอักษรในพาร์ติชันvendor
เช่นvendor/[oem]/fonts/[oem]-sans/
- สร้างไฟล์
Android.mk
สำหรับแพ็กเกจแบบอักษร เช่นvendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- ตรวจสอบว่าระบบจะติดตั้งโมดูลในพาร์ติชัน
product
ในโฟลเดอร์etc
โดยตรวจสอบว่าโมดูลมี Flag ต่อไปนี้LOCAL_MODULE_CLASS := ETC LOCAL_PRODUCT_MODULE := true LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
โค้ดตัวอย่างที่ระบุไว้ด้านบนแสดงคำจำกัดความที่สมบูรณ์ของโมดูลแพ็กเกจแบบอักษร
- สร้างไฟล์ชื่อ
fonts.mk
สำหรับแพ็กเกจแบบอักษร แล้วเพิ่มไฟล์แบบอักษรttf
ลงในPRODUCT_PACKAGES
เช่นvendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
เช่น
PRODUCT_PACKAGES := \ [font name].ttf \
สร้างแพ็กเกจการวางซ้อนอุปกรณ์
- สร้างโมดูลชื่อ
fonts_customization.xml
เพื่อเพิ่มลงในบิลด์ โมดูลนี้จะชี้ไปยังไฟล์fonts_customization.xml
ที่มีตระกูลแบบอักษรและเรียกใช้ไฟล์ make ของแพ็กเกจแบบอักษรทั้งหมด เช่นvendor/[oem]/[device]_overlay/fonts/Android.mk
- สร้างชุดแบบอักษร
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
ระดับรูทของไฟล์ต้องเป็นแท็ก
fonts-modification
เพิ่มชุดแบบอักษรสำหรับแพ็กเกจแบบอักษรแต่ละรายการในส่วนองค์ประกอบนี้ นอกจากนี้ ให้เพิ่มcustomizationType="new-named-family"
ลงในชุดแบบอักษรทุกชุด และตรวจสอบว่าแต่ละชุดมีแอตทริบิวต์name
ระบบจะใช้ชื่อนี้ในภายหลังเพื่อเข้าถึงชุดแบบอักษร ไฟล์นี้ต้องเพิ่มลงในข้อบังคับfonts_customizations.xml
ที่กําหนดไว้ก่อนหน้านี้ในAndroid.mk
ตัวอย่างที่ระบุไว้ด้านบนมีไฟล์
fonts_customization.xml
ที่ถูกต้อง - สร้าง
fonts.mk
เช่นvendor/[oem]/[device]_overlay/fonts/fonts.mk
- เพิ่ม
fonts_customization.xml
ภายใต้ธงPRODUCT_PACKAGES
- เรียกใช้แพ็กเกจแบบอักษรแต่ละรายการที่สร้างไว้ก่อนหน้านี้
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- เพิ่มโมดูลแบบอักษรลงในบิลด์ในส่วน
PRODUCT_PACKAGES
แล้วสร้างใหม่ ระบบจะติดตั้งแบบอักษรในระบบ - ตรวจสอบว่าไฟล์แบบอักษร
ttf
อยู่ในโฟลเดอร์/product/fonts
บนอุปกรณ์ - ตรวจสอบว่า
fonts_customization.xml
อยู่ใน/product/etc/
ในอุปกรณ์
ใช้ชุดแบบอักษรของระบบแบบใหม่
วิธีใช้ชุดแบบอักษรของระบบใหม่
<style name="customstyle"> <item name="android:fontFamily">customfontfamily</item> </style>