捆绑式字体

admin 2980 2025-08-24 23:18:22

字体资源定义了可在应用中使用的自定义字体。字体可以是单独的字体文件,也可以是一组在 XML 中定义的字体文件(称为字体系列)。

另请参阅如何定义 XML 中的字体,或改用可下载字体。

捆绑式字体

您可以将字体作为资源捆绑在应用中。字体在 R 文件中编译,在系统中可自动作为资源使用。然后,您可以借助 font 资源类型访问这些字体。

文件位置:

res/font/filename.ttf

(.ttf、.ttc、.otf 或 .xml)

该文件名将用作资源 ID。

资源引用:

在 XML 中:@[package:]font/font_name

语法:

android:font="@[package:]font/font_to_include"

android:fontStyle=["normal" | "italic"]

android:fontWeight="weight_value" />

元素:

必需。该元素必须是根节点。

无属性。

定义一个字体系列内的单个字体。不包含子节点。

属性:

android:fontStyle

关键字。定义字体样式。在将字体加载到字体堆栈中时会使用该属性,并且它会替换字体的标头表格中的任何样式信息。如果您未指定该属性,应用将使用字体标头表格中的值。常量值为 normal 或 italic。

android:fontWeight

整数。字体粗细。在将字体加载到字体堆栈中时会使用该属性,并且它会替换字体的标头表格中的任何粗细信息。属性值必须为 100 到 900(含)之间的 100 的倍数。如果您未指定该属性,应用将使用字体标头表格中的值。最常见的值为 400(常规粗细)和 700(粗体粗细)

示例:

保存在 res/font/lobster.xml 的 XML 文件:

android:fontStyle="normal"

android:fontWeight="400"

android:font="@font/lobster_regular" />

android:fontStyle="italic"

android:fontWeight="400"

android:font="@font/lobster_italic" />

保存在 res/layout/ 中并将该字体应用于 TextView 的 XML 文件:

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

语法:

android:fontProviderAuthority="authority"

android:fontProviderPackage="package"

android:fontProviderQuery="query"

android:fontProviderCerts="@[package:]array/array_resource" />

元素:

必需。该元素必须是根节点。

属性:

android:fontProviderAuthority

字符串。必需。定义字体请求的字体提供程序的授权。

android:fontProviderPackage

字符串。必需。要用于请求的字体提供程序的软件包名称。此属性用于验证提供程序的身份。

android:fontProviderQuery

字符串。必需。字体的字符串查询。

有关此字符串的格式,请参阅字体提供程序的文档。

android:fontProviderCerts

数组资源。必需。定义用于为此提供程序签名的证书的哈希集。此属性用于验证提供程序的身份,且仅当提供程序不属于系统映像的一部分时才需要验证。该值可以指向单个列表(字符串数组资源)或列表的列表(数组资源),其中每个单独的列表代表一个签名哈希集合。有关这些值,请参阅字体提供程序的文档。

示例:

保存在 res/font/lobster.xml 的 XML 文件:

android:fontProviderAuthority="com.example.fontprovider.authority"

android:fontProviderPackage="com.example.fontprovider"

android:fontProviderQuery="Lobster"

android:fontProviderCerts="@array/certs">

保存在 res/values/ 中用于定义证书数组的 XML 文件:

MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...

保存在 res/layout/ 中并将该字体应用于 TextView 的 XML 文件:

android:fontFamily="@font/lobster"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="Hello, World!" />

上一篇
下一篇
相关文章