rive-app / rive-android

A runtime for interactive animations on Android
https://rive.app
MIT License
332 stars 30 forks source link

How can I dynamically adjust the animation speed in code? #294

Open SamayLi opened 1 year ago

SamayLi commented 1 year ago

I would like to dynamically adjust the animation speed in code. How can I achieve this? Thank you.

mrrobot97 commented 4 months ago

+1

mrrobot97 commented 4 months ago

Temporary workaround:

Write your own CustomRiveAnimationView, modify createRenderer() method, return your custom RiveArtboardRender. Modify RiveArtboardRender#advance() method:

super.advance(elapsed * 2.0) means play animation with double speed.

class CustomRiveArtboardRender(
    trace: Boolean = false,
    rendererType: RendererType,
    controller: RiveFileController
) : RiveArtboardRenderer(trace, rendererType, controller) {

    var speed: Float = 1.0f

    override fun advance(elapsed: Float) {
        super.advance(elapsed * speed)
    }
}