Android
Android runtime for Rive
This guide documents how to get started using the Android runtime library. Rive runtime libraries are open-source. The source is available in its GitHub repository.
This library contains an API for Android apps to easily integrate Rive assets.
Follow the steps below for a quick start on integrating Rive into your Android app.
Add the following dependencies to your
build.gradle
file in your project:dependencies {
implementation 'app.rive:rive-android:5.0.0'
// During initialization, you may need to add a dependency
// for Jetpack Startup
implementation "androidx.startup:startup-runtime:1.1.1"
}
Rive needs to initialize its runtime when your app starts.
It can be done via an initializer that does this for you automatically. The initialization provider can be set up directly in your app's manifest file:
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data android:name="app.rive.runtime.kotlin.RiveInitializer"
android:value="androidx.startup" />
</provider>
Otherwise this can be achieved by calling the initializer in your code:
AppInitializer.getInstance(applicationContext)
.initializeComponent(RiveInitializer::class.java)
If you want to initialize Rive yourself, this can be done in code:
Rive.init(context)
The simplest way to get a Rive animation into your application is to include it as part of a layout. The following will consist of the Rive file loaded from the raw resources and auto-play its first animation. This assumes you have taken a downloaded
.riv
file (i.e off_road_car_blog.riv
) and placed it in your raw resources folder.<app.rive.runtime.kotlin.RiveAnimationView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:riveResource="@raw/off_road_car_blog" />
Another way to load a Rive file in is by referencing the URL where the asset lives (see Internet Permissions section below for an extra step in setup):
simple.xml
<app.rive.runtime.kotlin.RiveAnimationView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:riveUrl="https://cdn.rive.app/animations/vehicles.riv" />
When setting your context views, this might look like
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
class SimpleActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.simple)
}
}
If you're retrieving Rive files over a network, your app will need permission to access the internet:
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Note that this isn't necessary if you include the files in your Android project and load these in as a raw resource.
See subsequent Runtime pages to learn how to control animation playback, state machines, and more.
Last modified 1mo ago