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

ตอนนี้คุณใช้การวางซ้อนทรัพยากรรันไทม์ (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 โดยตรวจสอบว่าโมดูลมี Flag ต่อไปนี้
    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 ที่มีตระกูลแบบอักษรและเรียกใช้ไฟล์ make ของแพ็กเกจแบบอักษรทั้งหมด เช่น

    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>