Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release
thay vì aosp-main
để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Thêm phông chữ tuỳ chỉnh
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Giờ đây, bạn có thể sử dụng lớp phủ tài nguyên thời gian chạy (RRO) để thay đổi phông chữ. Bằng cách thêm phông chữ tuỳ chỉnh để tạo gói phông chữ, bạn có thể sử dụng phông chữ trong giao diện và sử dụng RRO để áp dụng các tuỳ chỉnh.
Hoàn thành các nhiệm vụ sau:
Cấu trúc tệp mẫu và tệp mẫu được cung cấp trong custom-fonts.zip.
Tải rồi giải nén tệp này trên máy tính để sử dụng.
Tạo gói phông chữ
Cách tạo gói phông chữ:
- Thêm tất cả tệp
ttf
phông chữ vào gói phông chữ trong phân vùng vendor
. Ví dụ:
vendor/[oem]/fonts/[oem]-sans/
- Tạo tệp
Android.mk
cho gói phông chữ. Ví dụ:
vendor/[oem]/fonts/[oem]-[fontname]/Android.mk
- Đảm bảo rằng mô-đun sẽ được cài đặt trong phân vùng
product
trong thư mục etc
. Để làm như vậy, hãy xác nhận rằng mô-đun có các cờ sau:
LOCAL_MODULE_CLASS := ETC
LOCAL_PRODUCT_MODULE := true
LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/fonts
Mã mẫu được cung cấp ở trên minh hoạ định nghĩa đầy đủ về mô-đun gói phông chữ.
- Tạo một tệp có tên
fonts.mk
cho gói phông chữ, sau đó thêm các tệp phông chữ ttf
vào PRODUCT_PACKAGES
. Ví dụ:
vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk
Ví dụ:
PRODUCT_PACKAGES := \
[font name].ttf \
Tạo gói lớp phủ thiết bị
- Tạo một mô-đun có tên là
fonts_customization.xml
để thêm vào bản dựng.
Mô-đun này trỏ đến tệp fonts_customization.xml
chứa các gia đình phông chữ và gọi các tệp tạo của tất cả các gói phông chữ. Ví dụ:
vendor/[oem]/[device]_overlay/fonts/Android.mk
- Tạo bộ phông chữ:
vendor/[oem]/[device]_overlay/fonts/fonts_customization.xml
Cấp gốc của tệp phải là thẻ fonts-modification
. Thêm bộ phông chữ cho từng gói phông chữ trong phần tử này. Ngoài ra, hãy thêm customizationType="new-named-family"
vào mọi bộ phông chữ và đảm bảo rằng mỗi bộ phông chữ đều có thuộc tính name
. Tên này sẽ được dùng sau để truy cập vào bộ phông chữ. Bạn phải thêm tệp này vào mô-đun fonts_customizations.xml
đã xác định trước đó trong Android.mk
.
Mẫu được cung cấp ở trên chứa một tệp fonts_customization.xml
hợp lệ.
- Tạo
fonts.mk
. Ví dụ:
vendor/[oem]/[device]_overlay/fonts/fonts.mk
- Thêm
fonts_customization.xml
vào cờ PRODUCT_PACKAGES
.
- Gọi vào từng gói phông chữ đã tạo trước đó.
$(call inherit-product-if-exists, vendor/[oem]/fonts/[oem]-[fontname]/fonts.mk)
- Thêm mô-đun phông chữ vào bản dựng trong
PRODUCT_PACKAGES
rồi tạo lại.
Phông chữ sẽ được cài đặt trên hệ thống.
- Xác minh rằng các tệp phông chữ
ttf
nằm trong thư mục /product/fonts
trên thiết bị.
- Xác minh rằng
fonts_customization.xml
nằm trong /product/etc/
trên thiết bị.
Sử dụng bộ phông chữ hệ thống mới
Cách sử dụng bộ phông chữ hệ thống mới:
<style name="customstyle">
<item name="android:fontFamily">customfontfamily</item>
</style>
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-08-10 UTC.
[[["Dễ hiểu","easyToUnderstand","thumb-up"],["Giúp tôi giải quyết được vấn đề","solvedMyProblem","thumb-up"],["Khác","otherUp","thumb-up"]],[["Thiếu thông tin tôi cần","missingTheInformationINeed","thumb-down"],["Quá phức tạp/quá nhiều bước","tooComplicatedTooManySteps","thumb-down"],["Đã lỗi thời","outOfDate","thumb-down"],["Vấn đề về bản dịch","translationIssue","thumb-down"],["Vấn đề về mẫu/mã","samplesCodeIssue","thumb-down"],["Khác","otherDown","thumb-down"]],["Cập nhật lần gần đây nhất: 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```"]]