gpt4 book ai didi

android - OvershootInterpolator 的组成等价物是什么?

转载 作者:行者123 更新时间:2023-12-04 23:54:10 28 4
gpt4 key购买 nike

在 Android View 中,我们使用 OvershootInterpolator

制作了动画

我们希望在 Jetpack Compose 中复制相同的动画。我看到 https://developer.android.com/jetpack/compose/animation 中描述了几个 AnimationSpec但我看不出哪一个可以复制 OvershootInterpolator

  • tween 规范似乎没有做任何超调,只是在开始值和结束值之间设置动画而没有超调

  • spring 规范会过冲,但它没有 durationMillis 参数作为补间,所以我们无法控制它的播放速度

  • keyFrames 规范似乎是一个可能的解决方案,方法是:

              animationSpec = keyframes {
    durationMillis = 500
    0f at 100 with FastOutSlowInEasing
    // Overshoot value to 50f
    50f * 2 at 300 with LinearOutSlowInEasing
    // Actual final value after overshoot animation
    25f at 500
    }

有没有比使用 keyFrames 复制 OvershootInterpolator 更好/更简单的方法?

最佳答案

您可以通过自定义 Easing 使用来自 Animator 世界的任何 Interpolator:

animationSpec = tween(easing = Easing {
OvershootInterpolator().getInterpolation(it)
})

缓动界面:https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Easing

虽然我建议在插值器上使用 Spring ,尤其是模拟 Spring 的插值器。 Spring 会给人一个更自然的外观。 :)

关于android - OvershootInterpolator 的组成等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67471918/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com