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

ตอนนี้คุณสามารถใช้การซ้อนทับทรัพยากรรันไทม์ (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 ที่มีตระกูลฟอนต์และเรียกไฟล์ 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 .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>