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 สตูดิโอ:
- คลิกขวาที่โฟลเดอร์ res แล้วไปที่ ใหม่ > ไดเรกทอรีทรัพยากร Android หน้าต่างไดเรกทอรีทรัพยากรใหม่จะปรากฏขึ้น
- ในรายการประเภททรัพยากร ให้เลือกแบบอักษรแล้วคลิก
ตกลง
หมายเหตุ: ชื่อของไดเรกทอรีทรัพยากรต้องเป็น font
รูปที่ 1 กำลังเพิ่มไดเรกทอรีทรัพยากรแบบอักษร
- เพิ่มไฟล์แบบอักษรในโฟลเดอร์
font
โครงสร้างโฟลเดอร์ด้านล่างนี้จะสร้าง
R.font.dancing_script
,R.font.lobster
และR.font.typo_graphica
รูปที่ 2 กำลังเพิ่มไฟล์แบบอักษรในไดเรกทอรี
res/font
- ดับเบิลคลิกไฟล์แบบอักษรเพื่อดูตัวอย่างแบบอักษรของไฟล์ในตัวแก้ไข
รูปที่ 3 กำลังแสดงตัวอย่างไฟล์แบบอักษร
สร้างชุดแบบอักษร
ชุดแบบอักษรคือชุดไฟล์แบบอักษรที่มีรายละเอียดด้านรูปแบบและน้ำหนัก ใน Android คุณสามารถสร้างชุดแบบอักษรใหม่เป็นทรัพยากรและการเข้าถึง XML ได้ เป็นหน่วยเดียว แทนที่จะอ้างอิงสไตล์และน้ำหนัก ทรัพยากรแยกต่างหาก การดำเนินการนี้หมายความว่าคุณปล่อยให้ระบบเลือกแบบอักษรที่ถูกต้อง ตามรูปแบบข้อความที่คุณใช้
หากต้องการสร้างชุดแบบอักษร ให้ทำตามขั้นตอนต่อไปนี้ใน Android Studio
- คลิกขวาที่โฟลเดอร์
font
และเลือก ใหม่ > ไฟล์ทรัพยากรแบบอักษร หน้าต่างไฟล์ทรัพยากรใหม่ จะปรากฏขึ้น - ป้อนชื่อไฟล์ แล้วคลิกตกลง XML ของทรัพยากรแบบอักษรใหม่ จะเปิดขึ้นในตัวแก้ไข
- แนบแอตทริบิวต์ไฟล์แบบอักษร รูปแบบ และน้ำหนักแต่ละรายการใน
องค์ประกอบ
<font>
XML ต่อไปนี้แสดงการเพิ่ม แอตทริบิวต์ที่เกี่ยวข้องกับแบบอักษรใน 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"/>
- เปิดหน้าต่างคุณสมบัติเพื่อตั้งค่าแบบอักษรสำหรับ
TextView
- เลือกข้อมูลพร็อพเพอร์ตี้เพื่อเปิดหน้าต่างพร็อพเพอร์ตี้
หมายเหตุ: หน้าต่างพร็อพเพอร์ตี้จะพร้อมใช้งาน เมื่อเปิดเครื่องมือแก้ไขการออกแบบเท่านั้น เลือกแท็บการออกแบบที่ ที่ด้านล่างของหน้าต่าง
- ขยายพร็อพเพอร์ตี้ textAppearance แล้วเลือกแบบอักษร จากรายการ fontFamily
-
รูปที่ 4 เลือกแบบอักษรจากหน้าต่าง Properties
- เลือกข้อมูลพร็อพเพอร์ตี้เพื่อเปิดหน้าต่างพร็อพเพอร์ตี้
ตัวอย่างเลย์เอาต์ของ Android Studio แสดงอยู่ที่แผงด้านขวาสุดในรูปที่ 5
ให้คุณดูตัวอย่างชุดแบบอักษรใน TextView
![การแสดงตัวอย่างแบบอักษรในตัวอย่างเลย์เอาต์](https://developer.android.com/static/guide/topics/ui/images/look-and-feel/fonts-in-xml/xml-font-preview.png?authuser=8&hl=th)
รูปที่ 5 กำลังแสดงตัวอย่างแบบอักษรในตัวอย่างเลย์เอาต์
เพิ่มแบบอักษรให้กับรูปแบบ
เปิดไฟล์ styles.xml
และตั้งค่า fontFamily
ลงในไฟล์แบบอักษรที่คุณต้องการเข้าถึง
<style name="customfontstyle" parent="@android:style/TextAppearance.Small"> <item name="android:fontFamily">@font/lobster</item> </style>
ใช้แบบอักษรแบบเป็นโปรแกรม
ในการเรียกแบบอักษรแบบเป็นโปรแกรม ให้เรียกเมธอด
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);
ใช้ไลบรารีการสนับสนุน
Support Library 26.0 รองรับแบบอักษรใน XML สำหรับอุปกรณ์ที่ใช้ Android 4.1 (API ระดับ 16) ขึ้นไป
หมายเหตุ เมื่อคุณประกาศชุดแบบอักษรในเลย์เอาต์ XML ผ่านไลบรารีการสนับสนุน ใช้เนมสเปซของแอปเพื่อให้แน่ใจว่าแบบอักษรของคุณโหลดขึ้นมา
<?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);