เพิ่มแบบอักษรเป็นทรัพยากร XML

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 สตูดิโอ:

  1. คลิกขวาที่โฟลเดอร์ res แล้วไปที่ ใหม่ > ไดเรกทอรีทรัพยากร Android หน้าต่างไดเรกทอรีทรัพยากรใหม่จะปรากฏขึ้น
  2. ในรายการประเภททรัพยากร ให้เลือกแบบอักษรแล้วคลิก ตกลง

    หมายเหตุ: ชื่อของไดเรกทอรีทรัพยากรต้องเป็น 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 และเลือก ใหม่ > ไฟล์ทรัพยากรแบบอักษร หน้าต่างไฟล์ทรัพยากรใหม่ จะปรากฏขึ้น
  2. ป้อนชื่อไฟล์ แล้วคลิกตกลง XML ของทรัพยากรแบบอักษรใหม่ จะเปิดขึ้นในตัวแก้ไข
  3. แนบแอตทริบิวต์ไฟล์แบบอักษร รูปแบบ และน้ำหนักแต่ละรายการใน องค์ประกอบ <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
    1. เลือกข้อมูลพร็อพเพอร์ตี้เพื่อเปิดหน้าต่างพร็อพเพอร์ตี้

      หมายเหตุ: หน้าต่างพร็อพเพอร์ตี้จะพร้อมใช้งาน เมื่อเปิดเครื่องมือแก้ไขการออกแบบเท่านั้น เลือกแท็บการออกแบบที่ ที่ด้านล่างของหน้าต่าง

    2. ขยายพร็อพเพอร์ตี้ textAppearance แล้วเลือกแบบอักษร จากรายการ fontFamily
    3. การเลือกแบบอักษรจากพร็อพเพอร์ตี้

      รูปที่ 4 เลือกแบบอักษรจากหน้าต่าง Properties

ตัวอย่างเลย์เอาต์ของ Android Studio แสดงอยู่ที่แผงด้านขวาสุดในรูปที่ 5 ให้คุณดูตัวอย่างชุดแบบอักษรใน TextView

การแสดงตัวอย่างแบบอักษรในตัวอย่างเลย์เอาต์

รูปที่ 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);