跳到主要内容

字体

在运行时替换字体

字体可以在运行时动态加载。这允许您对 Rive 内容进行本地化,而不会增加导出 .riv 文件的大小。

有关更多信息,请参见加载资源

后备字体

在渲染文本时,当前活动的字体中可能并非所有字形(字符)都可用。这通常发生在以下情况:

  • 使用的自定义字体不支持所有语言或 Unicode 范围
  • 嵌入的字体是字体的一个子集
  • 用户生成的或动态文本包含意外字符

当主字体无法渲染特定字形时,会自动使用后备字体。这些通常是系统字体,通常提供广泛的 Unicode 覆盖。

在 iOS 和 Android 上,为后备字体指定的字体大小会被忽略。平台会根据文本运行时运行的样式和动画选择最匹配的系统字体。

加载后备字体

后备字体可以来自:

  • 捆绑的本地资源
  • 远程 URL
  • 按名称的系统字体
import { RiveFonts } from '@rive-app/react-native';

// 捆绑的本地字体
const bundled = await RiveFonts.loadFont('kanit_regular.ttf');

// 远程字体
const remote = await RiveFonts.loadFont({
uri: 'https://raw.githubusercontent.com/google/fonts/main/ofl/kanit/Kanit-Regular.ttf',
});

// 按名称的系统字体
const system = await RiveFonts.loadFont({ name: 'Thonburi' });

设置后备字体

在挂载 Rive 视图之前调用 RiveFonts.setFallbackFonts()

await RiveFonts.setFallbackFonts({
default: [
bundled,
remote,
RiveFonts.systemFallback(),
],
});

清除后备字体

要删除之前配置的后备字体,调用:

await RiveFonts.clearFallbackFonts();

如果您的应用需要在重新创建 RiveView 之前完全重置字体配置,这很有用。