ב-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:
- לוחצים לחיצה ימנית על התיקייה res ועוברים אל New > Android Resources Directory. יופיע החלון New Resource Directory.
- ברשימה Resource type בוחרים ב-font, ולוחצים על OK.
הערה: שם ספריית המשאבים חייב להיות font.
- מוסיפים את קובצי הגופנים לתיקייה
font
.מבנה התיקיות שבהמשך יוצר את הערכים
R.font.dancing_script
,R.font.lobster
ו-R.font.typo_graphica
. - לוחצים לחיצה כפולה על קובץ גופן כדי לראות תצוגה מקדימה של הגופנים בקובץ בעורך.
יצירת משפחת גופנים
משפחת גופנים היא קבוצה של קובצי גופנים עם פרטי סגנון ועובי. ב-Android, אפשר ליצור משפחת גופנים חדשה כמשאב XML ולגשת אליה כיחידה אחת, במקום להפנות לכל סגנון ועובי כמשאבים נפרדים. כך המערכת תוכל לבחור את הגופן הנכון על סמך סגנון הטקסט שבו אתם משתמשים.
כדי ליצור משפחת גופנים, מבצעים את השלבים הבאים ב-Android Studio:
- לוחצים לחיצה ימנית על התיקייה
font
ובוחרים באפשרות New (חדש) > Font resource file (קובץ משאב של גופן). יופיע החלון New Resource File. - מזינים את שם הקובץ ולוחצים על אישור. קובץ ה-XML החדש של משאב הגופן ייפתח בכלי העריכה.
- צריך להקיף כל מאפיין של קובץ גופן, סגנון ועובי ברכיב
<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
.- בוחרים תצוגה כדי לפתוח את החלון מאפיינים.
הערה: החלון Properties (מאפיינים) זמין רק כשעורך העיצוב פתוח. בוחרים בכרטיסייה Design (עיצוב) בתחתית החלון.
- מרחיבים את המאפיין textAppearance ובוחרים את הגופן מהרשימה fontFamily.
- בוחרים תצוגה כדי לפתוח את החלון מאפיינים.
התצוגה המקדימה של הפריסה ב-Android Studio, שמוצגת בחלונית השמאלית ביותר באיור 5, מאפשרת לכם לראות תצוגה מקדימה של הגופן שהוגדר ב-TextView
.
הוספת גופנים לסגנון
פותחים את הקובץ 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);