跳到主要内容

入门(旧版 API)

将 Rive 添加到你的项目​

请参阅将 Rive 添加到你的项目部分,了解如何将 Rive 添加到你的 Android 项目。完成后,回到这里继续。

构建 RiveAnimationView​

有多种方式可以将 Rive 动画添加到你的 Android 应用程序中。

在开始之前,确保你的 Rive 文件(.riv)已包含在你的 Android 项目中。推荐的方式是将它们添加到项目的 raw 资源(res/raw)文件夹中。

使用 setRiveResource 或 setRiveUrl​

对于最简单的编程初始化,使用 setRiveResource(本地)或 setRiveUrl(网络)方法。它们有多个可选参数来自定义视图。

class MyActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

val riveView = RiveAnimationView(this)
riveView.setRiveResource(R.raw.my_rive_file)
// 或
riveView.setRiveUrl("https://mycdn.myorg.com/my_rive_file.riv")

setContentView(riveView)
}
}

使用 RiveAnimationView.Builder​

Rive 还提供了用于构造 RiveAnimationView 的构建器模式,允许分步初始化。请注意,setResource 方法可以接受原始资源 ID、URL(字符串)、字节数组或 Rive File。

val riveView = RiveAnimationView.Builder(this)
.setResource(R.raw.my_rive_file)
// 或
.setResource("https://mycdn.myorg.com/my_rive_file.riv")
.build()

setContentView(riveView)

使用 Rive File​

如果你已经加载了 Rive File 实例,也可以使用它来初始化视图。有关如何以及为什么加载 Rive 文件的更多详细信息,请参阅缓存 Rive 文件。

// 为简单起见在主线程加载字节;在生产环境中考虑在后台线程加载。
val bytes = resources.openRawResource(R.raw.rating).use { res -> res.readBytes() }
val riveFile = File(bytes)
val riveView = RiveAnimationView(this)
riveView.setRiveFile(riveFile)
// 如果不再需要该文件则释放,如果计划重用它则保留。
riveFile.release()

setContentView(riveView)

使用 Compose (AndroidView)​

你也可以在 Compose UI 中使用 AndroidView 可组合项来使用 RiveAnimationView。另请参阅示例应用中的 LegacyComposeActivity。

setContent {
AndroidView(
factory = { context ->
RiveAnimationView(context).also {
it.setRiveResource(R.raw.my_rive_file)
}
}
)
}

使用 XML 布局​

要通过 XML 使用,将其作为布局的一部分包含在内。它有许多可选属性来自定义视图。

<app.rive.runtime.kotlin.RiveAnimationView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:riveResource="@raw/my_rive_file"
... />

如果你更希望从托管位置加载 Rive 文件,请使用 app:riveUrl 属性。确保你拥有必要的网络权限。

<app.rive.runtime.kotlin.RiveAnimationView
app:riveUrl="https://mycdn.myorg.com/my_rive_file.riv"
... />

在你的 Activity 中,你可以像往常一样加载它:

setContentView(R.layout.my_layout)

网络权限​

如果你通过网络获取 Rive 文件,你的应用需要在 AndroidManifest.xml 中拥有访问互联网的权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

请注意,如果你将 .riv 文件包含在你的 Android 项目中并将其作为原始资源加载,则不需要此权限。

请参阅"运行时基础"部分中的页面,了解如何控制动画播放、状态机等内容。

看完还有疑问?进群交流下!
与众多 Rive 创作者、开发者一起交流探讨与答疑解惑。
加入交流群