เพิ่มแบบอักษรที่กำหนดเอง

ตอนนี้คุณใช้การวางซ้อนทรัพยากรรันไทม์ (RRO) เพื่อเปลี่ยนแบบอักษรได้แล้ว ด้วยการเพิ่ม เพื่อสร้างแพ็กเกจแบบอักษร คุณสามารถใช้แบบอักษรในธีมและใช้ RRO เพื่อนำพารามิเตอร์ การกำหนดค่าเอง

ทำงานต่อไปนี้ให้เสร็จ

คุณสามารถดูโครงสร้างไฟล์ตัวอย่างและไฟล์ตัวอย่างได้ใน custom-fonts.zip ดาวน์โหลดและแตกไฟล์นี้ภายในเครื่องเพื่อการใช้งานของคุณเอง

สร้างแพ็กเกจแบบอักษร

วิธีสร้างแพ็กเกจแบบอักษร

  1. เพิ่มไฟล์ ttf สำหรับแบบอักษรทั้งหมดลงในแพ็กเกจแบบอักษรใน พาร์ติชัน vendor เช่น

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

  2. สร้างไฟล์ Android.mk สำหรับแพ็กเกจแบบอักษร เช่น

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

  3. ตรวจสอบว่าได้ติดตั้งโมดูลในพาร์ติชัน product ใน etc โฟลเดอร์ ในการดำเนินการดังกล่าว ให้ตรวจสอบว่าโมดูลมีแฟล็กต่อไปนี้
    LOCAL_MODULE_CLASS := ETC
    LOCAL_PRODUCT_MODULE := true
    LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
    

    โค้ดตัวอย่างที่ให้ไว้ด้านบนจะแสดงคำจำกัดความที่สมบูรณ์ของโมดูลแพ็กเกจแบบอักษร

  4. สร้างไฟล์ชื่อ fonts.mk สำหรับแพ็กเกจแบบอักษร แล้วเพิ่มแบบอักษร ttf ไฟล์ไปที่ PRODUCT_PACKAGES เช่น

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

    เช่น

    PRODUCT_PACKAGES := \
    [font name].ttf \
    

สร้างแพ็กเกจการวางซ้อนอุปกรณ์

  1. สร้างโมดูลชื่อ fonts_customization.xml เพื่อเพิ่มลงในบิลด์ โมดูลนี้ชี้ไปยังไฟล์ fonts_customization.xml ที่มีแบบอักษร และเรียกไฟล์สร้างของแพ็กเกจแบบอักษรทั้งหมด เช่น

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

  2. สร้างชุดแบบอักษร

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

    ระดับรากของไฟล์ต้องเป็นแท็ก fonts-modification เพิ่ม ชุดแบบอักษรสำหรับแต่ละแพ็กเกจแบบอักษรในอีลิเมนต์นี้ นอกจากนี้ ให้เพิ่ม customizationType="new-named-family" สำหรับชุดแบบอักษรทุกชุด ให้แน่ใจว่าแต่ละรายการมีแอตทริบิวต์ name ชื่อนี้จะใช้ในภายหลังเพื่อเข้าถึง ชุดแบบอักษร ต้องเพิ่มไฟล์ลงใน fonts_customizations.xml เคยกำหนดไว้ใน Android.mk

    ตัวอย่างที่ระบุข้างต้นมีไฟล์ fonts_customization.xml ที่ถูกต้อง

  3. สร้าง fonts.mk เช่น

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

  4. เพิ่ม fonts_customization.xml ใต้ธง PRODUCT_PACKAGES
  5. เรียกใช้แพ็กเกจแบบอักษรแต่ละรายการที่สร้างไว้ก่อนหน้านี้

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

  6. เพิ่มโมดูลแบบอักษรไปยังบิลด์ในส่วน PRODUCT_PACKAGES แล้วสร้างใหม่ แบบอักษรจะได้รับการติดตั้งในระบบ
  7. ตรวจสอบว่าไฟล์แบบอักษร ttf อยู่ใน /product/fonts โฟลเดอร์ในอุปกรณ์
  8. ตรวจสอบว่า fonts_customization.xml อยู่ใน /product/etc/ ใน อุปกรณ์

ใช้ชุดแบบอักษรของระบบใหม่

หากต้องการใช้ชุดแบบอักษรของระบบใหม่ ให้ทำดังนี้

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