החל מ-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
. כדי לעשות זאת, צריך לוודא שהמודול כולל את הדגלים הבאים:
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```"]]