字体资源定义了可在应用中使用的自定义字体。字体可以是单独的字体文件,也可以是一组在 XML 中定义的字体文件(称为字体系列)。
捆绑式字体
您可以将字体作为资源捆绑在应用中。字体在 R
文件中编译,在系统中可自动作为资源使用。然后,您可以借助 font
资源类型访问这些字体。
- 文件位置:
res/font/filename.ttf
(.ttf
、.ttc
、.otf
或.xml
)
该文件名将用作资源 ID。- 资源引用:
- 在 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> - 元素:
- 示例:
- 保存在
res/font/lobster.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>保存在
res/layout/
中并将该字体应用于TextView
的 XML 文件:<?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
文件名即为资源 ID。- 资源引用:
- 在 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" /> - 元素:
- 示例:
- 保存在
res/font/lobster.xml
的 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>保存在
res/values/
中用于定义证书数组的 XML 文件:<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="certs">
<item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
</string-array>
</resources>保存在
res/layout/
中并将该字体应用于TextView
的 XML 文件:<?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!" />