משאבים בנושא גופנים
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
משאב של גופנים מגדיר גופן מותאם אישית שאפשר להשתמש בו באפליקציה. גופנים
הם יכולים להיות קובצי גופנים נפרדים או אוסף של קובצי גופנים, שנקראים גם
של משפחת הגופנים ומוגדרים ב-XML.
ראה גם כיצד להגדיר גופנים
ב-XML או להשתמש בגופנים שניתנים להורדה.
גופן בחבילה
אפשר לקבץ גופנים כמשאבים באפליקציה. הגופנים מורכבים
R
והם זמינים במערכת באופן אוטומטי בתור
משאב. לאחר מכן תוכל לגשת לגופנים האלה בעזרת
סוג המשאב font
.
- מיקום הקובץ:
res/font/filename.ttf
(.ttf
, .ttc
, .otf
, או
.xml
)
שם הקובץ משמש כמזהה המשאב.
- הפניה למשאבים:
- ב-XML:
@[package:]font/font_name
- תחביר:
-
<?xml version="1.0" encoding="utf-8"?>
<font-family>
<font
android:font="@[package:]font/font_to_include"
android:fontStyle=["normal" | "italic"]
android:fontWeight="weight_value" />
</font-family>
- רכיבים:
-
<font-family>
- חובה. הוא חייב להיות צומת הרמה הבסיסית (root).
אין מאפיינים.
<font>
- מגדירה גופן יחיד במשפחה. לא מכיל צומתי צאצא.
מאפיינים:
android:fontStyle
- מילת מפתח. מגדיר את סגנון הגופן. המאפיין הזה
משמש כשהגופן נטען למקבץ הגופנים ומחליף אותו
את כל פרטי הסגנון בטבלאות הכותרות של הגופנים. אחרת
לציין את המאפיין, האפליקציה תשתמש בערך שמופיע בגופן
טבלאות של כותרות. הערך הקבוע הוא או
normal
או italic
.
android:fontWeight
- מספר שלם. עובי הגופן. המאפיין הזה
משמש כשהגופן נטען למקבץ הגופנים ומחליף אותו
מידע על משקל בטבלאות הכותרות של הגופנים.
ערך המאפיין חייב להיות מספר
של 100 בין 100 ל-900, כולל. אם לא מציינים
המאפיין, האפליקציה משתמשת בערך מהכותרת של הגופן
בטבלאות. הערכים הנפוצים ביותר הם 400 למשקל רגיל ו-700
לעובי מודגש.
- דוגמא:
- קובץ XML נשמר ב-
res/font/lobster.xml
:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
<font
android:fontStyle="normal"
android:fontWeight="400"
android:font="@font/lobster_regular" />
<font
android:fontStyle="italic"
android:fontWeight="400"
android:font="@font/lobster_italic" />
</font-family>
קובץ XML נשמר ב-res/layout/
ומחיל את הגופן על
TextView
:
<?xml version="1.0" encoding="utf-8"?>
<EditText
android:fontFamily="@font/lobster"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World!" />
גופן ניתן להורדה
משאב גופן שניתן להורדה מגדיר גופן מותאם אישית שבו ניתן להשתמש
אפליקציה. הגופן הזה לא זמין באפליקציה עצמה. במקום זאת, הגופן
אוחזרו מספק הגופנים.
- מיקום הקובץ:
res/font/filename.xml
שם הקובץ הוא מזהה המשאב.
- הפניה למשאבים:
- ב-XML:
@[package:]font/font_name
- תחביר:
-
<?xml version="1.0" encoding="utf-8"?>
<font-family
android:fontProviderAuthority="authority"
android:fontProviderPackage="package"
android:fontProviderQuery="query"
android:fontProviderCerts="@[package:]array/array_resource" />
- רכיבים:
-
<font-family>
- חובה. הוא חייב להיות צומת הרמה הבסיסית (root).
:
android:fontProviderAuthority
- מחרוזת. חובה. סמכות הגופן
שמגדיר את בקשת הגופן.
android:fontProviderPackage
- מחרוזת. חובה. שם החבילה של הגופן
שייעשה בו שימוש עבור הבקשה. משמש לאימות
זהות הספק.
android:fontProviderQuery
- מחרוזת. חובה. שאילתת המחרוזת של הגופן.
יש לעיין במסמכים של ספק הגופנים בנוגע לפורמט הזה
String.
android:fontProviderCerts
- משאב מערך. חובה. מגדיר את הקבוצות של
הם גיבוב (hash) של האישורים ששימשו לחתימה על הספק הזה. הדבר
משמש לאימות זהות הספק, והוא נדרש רק
אם הספק אינו חלק מתמונת המערכת. הערך יכול
להצביע על רשימה יחידה (משאב של מערך מחרוזות) או על רשימה של רשימות
(משאב מערך), כאשר כל רשימה מייצגת
זהו אוסף של גיבובי חתימה. צריך לפנות לספק הגופנים.
תיעוד של הערכים האלה.
- דוגמא:
- קובץ XML נשמר ב-
res/font/lobster.xml
:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
android:fontProviderAuthority="com.example.fontprovider.authority"
android:fontProviderPackage="com.example.fontprovider"
android:fontProviderQuery="Lobster"
android:fontProviderCerts="@array/certs">
</font-family>
קובץ XML נשמר ב-res/values/
שמגדיר את מערך האישורים:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="certs">
<item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
</string-array>
</resources>
קובץ XML נשמר ב-res/layout/
ומחיל את הגופן על
TextView
:
<?xml version="1.0" encoding="utf-8"?>
<EditText
android:fontFamily="@font/lobster"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World!" />
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון 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-07-27 (שעון UTC)."],[],[],null,["# Font resources\n\nA font resource defines a custom font that you can use in your app. Fonts\ncan be individual font files or a collection of font files, known as a\nfont family and defined in XML.\n\nAlso see how to define [fonts\nin XML](/guide/topics/ui/look-and-feel/fonts-in-xml) or instead use [Downloadable Fonts](/guide/topics/ui/look-and-feel/downloadable-fonts).\n\nBundled font\n------------\n\n\nYou can bundle fonts as resources in an app. Fonts are compiled in the\n`R` file and are automatically available in the system as a\nresource. You can then access these fonts with the help of the\n`font` resource type.\n\nfile location:\n: `res/font/`*filename*`.ttf`\n (`.ttf`, `.ttc`, `.otf`, or\n `.xml`) \n\n The filename is used as the resource ID.\n\nresource reference:\n: In XML: `@[package:]font/`*font_name*\n\nsyntax:\n:\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family\u003e\n \u003cfont\n android:font=\"@[package:]font/font_to_include\"\n android:fontStyle=[\"normal\" | \"italic\"]\n android:fontWeight=\"weight_value\" /\u003e\n \u003c/font-family\u003e\n ```\n\nelements:\n:\n\n `\u003cfont-family\u003e`\n : **Required.** This must be the root node.\n\n No attributes.\n\n `\u003cfont\u003e`\n\n : Defines a single font within a family. Contains no child nodes. Attributes:\n\n `android:fontStyle`\n : *Keyword* . Defines the font style. This attribute is\n used when the font is loaded into the font stack and overrides\n any style information in the font's header tables. If you don't\n specify the attribute, the app uses the value from the font's\n header tables. The constant value is either\n `normal` or `italic`.\n\n `android:fontWeight`\n : *Integer*. The weight of the font. This attribute is\n used when the font is loaded into the font stack and overrides\n any weight information in the font's header tables. The\n attribute value must be a multiple\n of 100 between 100 and 900, inclusive. If you don't specify\n the attribute, the app uses the value from the font's header\n tables. The most common values are 400 for regular weight and 700\n for bold weight.\n\nexample:\n : XML file saved at `res/font/lobster.xml`: \n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family xmlns:android=\"http://schemas.android.com/apk/res/android\"\u003e\n \u003cfont\n android:fontStyle=\"normal\"\n android:fontWeight=\"400\"\n android:font=\"@font/lobster_regular\" /\u003e\n \u003cfont\n android:fontStyle=\"italic\"\n android:fontWeight=\"400\"\n android:font=\"@font/lobster_italic\" /\u003e\n \u003c/font-family\u003e\n ```\n\n XML file saved in `res/layout/` that applies the font to a\n [TextView](/reference/android/widget/TextView):\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cEditText\n android:fontFamily=\"@font/lobster\"\n android:layout_width=\"fill_parent\"\n android:layout_height=\"wrap_content\"\n android:text=\"Hello, World!\" /\u003e\n ```\n\nDownloadable font\n-----------------\n\n\nA downloadable font resource defines a custom font that you can use in an\napp. This font isn't available in the app itself. Instead, the font is\nretrieved from a font provider.\n\nfile location:\n: `res/font/`*filename*`.xml`\n The filename is the resource ID.\n\nresource reference:\n: In XML:`@[package:]font/`*font_name*\n\nsyntax:\n:\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family\n android:fontProviderAuthority=\"authority\"\n android:fontProviderPackage=\"package\"\n android:fontProviderQuery=\"query\"\n android:fontProviderCerts=\"@[package:]array/array_resource\" /\u003e\n ```\n\nelements:\n:\n\n `\u003cfont-family\u003e`\n : **Required.** This must be the root node.\n\n attributes:\n\n `android:fontProviderAuthority`\n : *String* . **Required**. The authority of the font\n provider that defines the font request.\n\n `android:fontProviderPackage`\n : *String* . **Required**. The package name of the font\n provider to be used for the request. This is used to verify the\n identity of the provider.\n\n `android:fontProviderQuery`\n : *String* . **Required**. The string query of the font.\n Refer to your font provider's documentation on the format of this\n string.\n\n `android:fontProviderCerts`\n : *Array resource* . **Required**. Defines the sets of\n hashes for the certificates used to sign this provider. This is\n used to verify the identity of the provider and is only required\n if the provider isn't part of the system image. The value can\n point to a single list (a string array resource) or a list of lists\n (an array resource), where each individual list represents one\n collection of signature hashes. Refer to your font provider's\n documentation for these values.\n\n\nexample:\n : XML file saved at `res/font/lobster.xml`: \n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cfont-family xmlns:android=\"http://schemas.android.com/apk/res/android\"\n android:fontProviderAuthority=\"com.example.fontprovider.authority\"\n android:fontProviderPackage=\"com.example.fontprovider\"\n android:fontProviderQuery=\"Lobster\"\n android:fontProviderCerts=\"@array/certs\"\u003e\n \u003c/font-family\u003e\n ```\n\n XML file saved in `res/values/` that defines the cert array:\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cresources\u003e\n \u003cstring-array name=\"certs\"\u003e\n \u003citem\u003eMIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...\u003c/item\u003e\n \u003c/string-array\u003e\n \u003c/resources\u003e\n ```\n\n XML file saved in `res/layout/` that applies the font to a\n [TextView](/reference/android/widget/TextView):\n\n ```xml\n \u003c?xml version=\"1.0\" encoding=\"utf-8\"?\u003e\n \u003cEditText\n android:fontFamily=\"@font/lobster\"\n android:layout_width=\"fill_parent\"\n android:layout_height=\"wrap_content\"\n android:text=\"Hello, World!\" /\u003e\n ```"]]