ทรัพยากรแบบอักษร

ทรัพยากรแบบอักษรจะกำหนดแบบอักษรที่กำหนดเองที่คุณใช้ในแอปได้ แบบอักษร อาจเป็นไฟล์แบบอักษรแต่ละไฟล์หรือคอลเล็กชันไฟล์แบบอักษร ซึ่งเรียกว่า ชุดแบบอักษรและที่กำหนดไว้ใน 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>
ต้องระบุ ต้องเป็นโหนดรูท

ไม่มีแอตทริบิวต์

<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>
ต้องระบุ ต้องเป็นโหนดรูท

ดังนี้

android:fontProviderAuthority
สตริง ต้องระบุ สิทธิ์ของแบบอักษร ที่ระบุคำขอแบบอักษร
android:fontProviderPackage
สตริง ต้องระบุ ชื่อแพ็กเกจของแบบอักษร ที่จะใช้สำหรับคำขอ ข้อมูลนี้ใช้เพื่อยืนยัน ของผู้ให้บริการโดยตรง
android:fontProviderQuery
สตริง ต้องระบุ การค้นหาสตริงของแบบอักษร โปรดดูเอกสารของผู้ให้บริการแบบอักษรในรูปแบบของ สตริง
android:fontProviderCerts
ทรัพยากรของอาร์เรย์ ต้องระบุ กำหนดชุดของ แฮชสำหรับใบรับรองที่ใช้เพื่อลงนามผู้ให้บริการรายนี้ นี่คือ ใช้เพื่อยืนยันตัวตนของผู้ให้บริการและจำเป็นต้องใช้เท่านั้น หากผู้ให้บริการไม่ได้เป็นส่วนหนึ่งของอิมเมจระบบ ค่าสามารถ ชี้ไปที่รายการเดียว (ทรัพยากรอาร์เรย์สตริง) หรือชุดรายการ (ทรัพยากรอาร์เรย์) โดยที่แต่ละรายการแสดงถึง ชุดแฮชลายเซ็น โปรดดูที่ผู้ให้บริการแบบอักษรของคุณ สำหรับค่าเหล่านี้
ตัวอย่าง:
ไฟล์ 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!" />