משאבים בנושא גופנים

משאב של גופנים מגדיר גופן מותאם אישית שאפשר להשתמש בו באפליקציה. גופנים הם יכולים להיות קובצי גופנים נפרדים או אוסף של קובצי גופנים, שנקראים גם של משפחת הגופנים ומוגדרים ב-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!" />