ตอนนี้คุณใช้การวางซ้อนทรัพยากรรันไทม์ (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>