Tài nguyên phông chữ

Tài nguyên phông chữ xác định phông chữ tuỳ chỉnh mà bạn có thể sử dụng trong ứng dụng của mình. Phông chữ có thể là các tệp phông chữ riêng lẻ hoặc một tập hợp các tệp phông chữ, được gọi là bộ phông chữ và được xác định trong XML.

Ngoài ra, hãy xem cách xác định phông chữ trong XML hoặc sử dụng phông chữ có thể tải xuống.

Phông chữ theo gói

Bạn có thể nhóm các phông chữ dưới dạng tài nguyên trong một ứng dụng. Phông chữ sẽ được biên dịch trong tệp R và tự động xuất hiện trong hệ thống dưới dạng tài nguyên. Sau đó, bạn có thể truy cập các phông chữ này với sự trợ giúp của loại tài nguyên font.

vị trí tệp:
res/font/filename.ttf (.ttf, .ttc, .otf, hoặc .xml)
Tên tệp được dùng làm mã nhận dạng tài nguyên.
mã tham chiếu tài nguyên:
Trong XML: @[package:]font/font_name
cú pháp:
<?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>
phần tử:
<font-family>
Bắt buộc. Đây phải là nút gốc.

Không có thuộc tính nào.

<font>
Xác định phông chữ trong một bộ phông chữ. Không chứa nút con.

thuộc tính:

android:fontStyle
Từ khoá. Xác định kiểu phông chữ. Thuộc tính này được dùng khi phông chữ được tải vào ngăn xếp phông chữ và ghi đè mọi thông tin kiểu trong bảng tiêu đề của phông chữ. Nếu bạn không chỉ định thuộc tính, ứng dụng sẽ sử dụng giá trị từ các bảng tiêu đề của phông chữ. Giá trị không đổi phải là normal hoặc italic.
android:fontWeight
Số nguyên. Độ đậm của phông chữ. Thuộc tính này được dùng khi phông chữ được tải vào ngăn xếp phông chữ và ghi đè mọi thông tin về độ đậm trong bảng tiêu đề của phông chữ. Giá trị thuộc tính phải là một số dương, là bội số của 100 và từ 100 đến 900. Nếu bạn không chỉ định thuộc tính này, ứng dụng sẽ dùng giá trị trong bảng tiêu đề của phông chữ. Các giá trị phổ biến nhất là 400 cho độ đậm thông thường và 700 cho độ in đậm.
ví dụ:
Tệp XML được lưu vào 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>

Tệp XML áp dụng phông chữ cho TextView được lưu trong res/layout/:

<?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!" />

Phông chữ có thể tải xuống

Tài nguyên phông chữ có thể tải xuống xác định phông chữ tuỳ chỉnh mà bạn có thể sử dụng trong ứng dụng. Phông chữ này không có sẵn trong ứng dụng; thay vào đó, phông chữ sẽ được truy xuất từ một trình cung cấp phông chữ.

vị trí tệp:
res/font/filename.xml Tên tệp được dùng làm mã nhận dạng tài nguyên.
mã tham chiếu tài nguyên:
Trong XML:@[package:]font/font_name
cú pháp:
<?xml version="1.0" encoding="utf-8"?>
<font-family
    android:fontProviderAuthority="authority"
    android:fontProviderPackage="package"
    android:fontProviderQuery="query"
    android:fontProviderCerts="@[package:]array/array_resource" />
phần tử:
<font-family>
Bắt buộc. Đây phải là nút gốc.

thuộc tính:

android:fontProviderAuthority
Chuỗi. Bắt buộc. Quyền của trình cung cấp phông chữ sẽ xác định yêu cầu phông chữ.
android:fontProviderPackage
Chuỗi. Bắt buộc. Tên gói của Trình cung cấp phông chữ sẽ được sử dụng cho yêu cầu. Thông tin này dùng để xác minh danh tính của trình cung cấp.
android:fontProviderQuery
Chuỗi. Bắt buộc. Truy vấn chuỗi phông chữ. Hãy tham khảo tài liệu của trình cung cấp phông chữ về định dạng của chuỗi này.
android:fontProviderCerts
Tài nguyên mảng. Bắt buộc. Xác định tập hợp hàm băm cho các chứng chỉ dùng để ký trình cung cấp này. Quy trình này được dùng để xác minh danh tính của trình cung cấp và chỉ bắt buộc nếu trình cung cấp không có trong ảnh hệ thống. Giá trị này có thể trỏ đến một danh sách (tài nguyên mảng chuỗi), hoặc một danh sách của các danh sách (tài nguyên mảng), trong đó mỗi danh sách riêng lẻ đại diện cho một tập hợp các hàm băm chữ ký. Vui lòng tham khảo tài liệu của trình cung cấp phông chữ để biết về các giá trị này.
ví dụ:
Tệp XML được lưu vào 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>

Tệp XML xác định mảng chứng chỉ được lưu trong res/values/:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="certs">
      <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
    </string-array>
</resources>

Tệp XML áp dụng phông chữ cho TextView được lưu trong res/layout/:

<?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!" />