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

คุณสามารถใช้ Runtime Resource Overlays (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 ตัวอย่างเช่น:

    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>