הוספת גופן כמשאב XML

רוצה לנסות את שיטת הכתיבה?
Jetpack Compose היא ערכת הכלים המומלצת לבניית ממשק משתמש ב-Android. איך משתמשים בטקסט ב'כתיבה'

ב-Android 8.0 (רמת API 26) נוספו גופנים ב-XML, תכונה שמאפשרת להשתמש בגופנים כמשאבים. אפשר להוסיף את הקובץ font לתיקייה res/font/ כדי לארוז גופנים כמשאבים. הגופנים האלה מקובצים בקובץ R וזמינים באופן אוטומטי ב-Android Studio. אפשר לגשת למשאבי הגופנים באמצעות סוג המשאב font. לדוגמה, כדי לגשת למשאב גופן, משתמשים ב-@font/myfont או ב-R.font.myfont.

כדי להשתמש בתכונה 'גופנים ב-XML' במכשירים עם Android 4.1 (רמת API 16) ואילך, צריך להשתמש ב-Support Library 26.0. למידע נוסף על השימוש בספריית התמיכה, קראו את הקטע שימוש בספריית התמיכה.

כדי להוסיף גופנים כמשאבים, מבצעים את השלבים הבאים ב-Android Studio:

  1. לוחצים לחיצה ימנית על התיקייה res ועוברים אל New > Android Resources Directory. יופיע החלון New Resource Directory.
  2. ברשימה Resource type בוחרים ב-font, ולוחצים על OK.

    הערה: שם ספריית המשאבים חייב להיות font.

    הוספה של ספריית משאבי הגופנים

    איור 1. הוספת ספריית המשאבים של הגופן.

  3. מוסיפים את קובצי הגופנים לתיקייה font.

    מבנה התיקיות שבהמשך יוצר את הערכים R.font.dancing_script,‏ R.font.lobster ו-R.font.typo_graphica.

    הוספת קובצי הגופן בספריית המשאבים

    איור 2. הוספת קובצי הגופן לספרייה res/font.

  4. לוחצים לחיצה כפולה על קובץ גופן כדי לראות תצוגה מקדימה של הגופנים בקובץ בעורך. הצגת תצוגה מקדימה של קובץ הגופן

    איור 3. תצוגה מקדימה של קובץ הגופנים.

יצירת משפחת גופנים

משפחת גופנים היא קבוצה של קובצי גופנים עם פרטי סגנון ועובי. ב-Android, אפשר ליצור משפחת גופנים חדשה כמשאב XML ולגשת אליה כיחידה אחת, במקום להפנות לכל סגנון ועובי כמשאבים נפרדים. כך המערכת תוכל לבחור את הגופן הנכון על סמך סגנון הטקסט שבו אתם משתמשים.

כדי ליצור משפחת גופנים, מבצעים את השלבים הבאים ב-Android Studio:

  1. לוחצים לחיצה ימנית על התיקייה font ובוחרים באפשרות New (חדש) > Font resource file (קובץ משאב של גופן). יופיע החלון New Resource File.
  2. מזינים את שם הקובץ ולוחצים על אישור. קובץ ה-XML החדש של משאב הגופן ייפתח בכלי העריכה.
  3. צריך להקיף כל מאפיין של קובץ גופן, סגנון ועובי ברכיב <font>. הקוד הבא מדגים הוספה של מאפיינים שקשורים לגופן ב-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

משתמשים בגופנים, בקובץ גופן יחיד או בגופן ממשפחת גופנים, באובייקטים מסוג TextView או בסגנונות באמצעות המאפיין fontFamily.

הערה: כשמשתמשים במשפחת גופנים, הערך של TextView משתנה מעצמו, לפי הצורך, כדי להשתמש בקובצי הגופנים מאותה משפחה.

הוספת גופנים ל-TextView

כדי להגדיר גופן ל-TextView, מבצעים אחת מהפעולות הבאות:

  • בקובץ ה-XML של הפריסה, מגדירים את המאפיין fontFamily לקובץ הגופן שאליו רוצים לגשת.
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/lobster"/>
    
  • פותחים את החלון Properties כדי להגדיר את הגופן של TextView.
    1. בוחרים תצוגה כדי לפתוח את החלון מאפיינים.

      הערה: החלון Properties (מאפיינים) זמין רק כשעורך העיצוב פתוח. בוחרים בכרטיסייה Design (עיצוב) בתחתית החלון.

    2. מרחיבים את המאפיין textAppearance ובוחרים את הגופן מהרשימה fontFamily.
    3. בחירת הגופן מתוך &#39;מאפיינים&#39;

      איור 4. בחירת הגופן בחלון מאפיינים.

התצוגה המקדימה של הפריסה ב-Android Studio, שמוצגת בחלונית השמאלית ביותר באיור 5, מאפשרת לכם לראות תצוגה מקדימה של הגופן שהוגדר ב-TextView.

תצוגה מקדימה של גופנים בתצוגה המקדימה של הפריסה

איור 5. תצוגה מקדימה של גופנים בתצוגה המקדימה של הפריסה.

הוספת גופנים לסגנון

פותחים את הקובץ styles.xml ומגדירים את המאפיין fontFamily לקובץ הגופן שאליו רוצים לגשת.

  • <style name="customfontstyle" parent="@android:style/TextAppearance.Small">
        <item name="android:fontFamily">@font/lobster</item>
    </style>
    
  • שימוש בגופנים באופן פרוגרמטי

    כדי לאחזר גופנים באופן פרוגרמטי, צריך להפעיל את ה-method‏ getFont(int) ולציין את מזהה המשאב של הגופן שרוצים לאחזר. השיטה הזו מחזירה אובייקט Typeface. המערכת בוחרת את הסגנון שהכי מתאים לך מתוך פרטי הגופנים, אבל אפשר להשתמש בשיטה setTypeface(android.graphics.Typeface, int) כדי להגדיר סגנונות ספציפיים לגופנים.

    הערה: TextView עושה את זה בשבילכם.

    Kotlin

    val typeface = resources.getFont(R.font.myfont)
    textView.typeface = typeface
    

    Java

    Typeface typeface = getResources().getFont(R.font.myfont);
    textView.setTypeface(typeface);
    

    שימוש בספריית התמיכה

    ספריית התמיכה 26.0 תומכת בגופנים ב-XML במכשירים עם Android 4.1 (רמת API 16) ואילך.

    הערה: כשמגדירים משפחות גופנים בפריסה של XML דרך ספריית התמיכה, צריך להשתמש במרחב השמות app כדי לוודא שהגופנים נטענים.

    <?xml version="1.0" encoding="utf-8"?>
    <font-family xmlns:app="http://schemas.android.com/apk/res-auto">
        <font app:fontStyle="normal" app:fontWeight="400" app:font="@font/myfont-Regular"/>
        <font app:fontStyle="italic" app:fontWeight="400" app:font="@font/myfont-Italic" />
    </font-family>
    

    כדי לאחזר גופנים באופן פרוגרמטי, צריך להפעיל את השיטה ResourceCompat.getFont(Context, int) ולספק מופע של Context ומזהה משאב.

    Kotlin

    val typeface = ResourcesCompat.getFont(context, R.font.myfont)
    

    Java

    Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);