ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
เพิ่มแบบอักษรที่กำหนดเอง
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ตอนนี้คุณใช้การวางซ้อนทรัพยากรรันไทม์ (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>
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-08-10 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-08-10 UTC"],[],[],null,["# Add custom fonts\n\nYou can now use runtime resource overlays (RROs) to change fonts. By adding custom\nfonts to make a font package, you can use fonts in themes and use RROs to apply the\ncustomizations.\n\nComplete these tasks:\n\n- [Make a font package](/docs/automotive/hmi/car_ui/fonts#make)\n- [Create a device overlay package](/docs/automotive/hmi/car_ui/fonts#create)\n- [Use the added system fonts family](/docs/automotive/hmi/car_ui/fonts#use)\n\nA sample file structure and sample files are provided in\n[custom-fonts.zip](/static/docs/automotive/hmi/car_ui/custom-fonts.zip).\nDownload and then extract this file locally for your own use.\n\nMake a font package\n-------------------\n\nTo make a font package:\n\n1. Add all the font `ttf` files to the font package in the `vendor` partition. For example:\n\n `vendor/[oem]/fonts/[oem]-sans/`\n2. Create the `Android.mk` file for the font package. For example:\n\n `vendor/[oem]/fonts/[oem]-[fontname]/Android.mk`\n3. Make sure the module will be installed in the `product` partition in the `etc` folder. To do so, confirm the module has the following flags: \n\n ```makefile\n LOCAL_MODULE_CLASS := ETC\n LOCAL_PRODUCT_MODULE := true\n LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts\n ```\n\n The sample code provided above illustrates a complete definition of a font package module.\n4. Create a file named `fonts.mk` for the font package and then add the font `ttf` files to `PRODUCT_PACKAGES`. For example:\n\n `vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk`\n\n For example: \n\n ```objective-c\n PRODUCT_PACKAGES := \\\n [font name].ttf \\\n ```\n\nCreate a device overlay package\n-------------------------------\n\n1. Make a module called `fonts_customization.xml` to be added to the build. This module points to the `fonts_customization.xml` file that contains the font families and calls the make files of all the font packages. For example:\n\n `vendor/[oem]/[device]_overlay/fonts/Android.mk`\n2. Create the font families: `vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml`\n\n The root level of the file must be a `fonts-modification` tag. Add\n font families for each of the font packages under this element. In addition, add\n `customizationType=\"new-named-family\"` to every font family, and make\n sure each has a `name` attribute. This name is used later to access the\n font family. This file must be added to the `fonts_customizations.xml`\n module defined previously in `Android.mk`.\n\n The sample provided above contains a valid `fonts_customization.xml` file.\n3. Create `fonts.mk`. For example:\n\n `vendor/[oem]/[device]_overlay/fonts/fonts.mk`\n4. Add `fonts_customization.xml` under the `PRODUCT_PACKAGES` flag.\n5. Call into each of the previously created font packages.\n `$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)`\n\n6. Add the font module to the build under `PRODUCT_PACKAGES` and then rebuild. The fonts will be installed on the system.\n7. Verify that the `ttf` fonts files are in the `/product/fonts` folder on the device.\n8. Verify that `fonts_customization.xml` is in `/product/etc/` on the device.\n\nUse the new system fonts family\n-------------------------------\n\nTo use the new system fonts family: \n\n```text\n\u003cstyle name=\"customstyle\"\u003e\n \u003citem name=\"android:fontFamily\"\u003ecustomfontfamily\u003c/item\u003e\n\u003c/style\u003e\n```"]]