You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose如何实现类似ValueAnimator的多关键帧Float动画?

Jetpack Compose 多关键帧缩放动画实现方案

你可以直接使用Compose动画库提供的keyframes动画规格实现多关键帧序列效果,无需手动串联多个animateTo调用,和ValueAnimator.ofFloat的能力完全对齐:

val scaleAnimatable = remember { Animatable(0.8f) }

val playCheckItemAnimation = {
    scope.launch {
        scaleAnimatable.stop()
        scaleAnimatable.animateTo(
            targetValue = 0.8f,
            // Repeatable 配置直接指定重复次数,无需手写for循环
            animationSpec = Repeatable(
                iterations = 3,
                animation = keyframes {
                    // 整个单轮动画的总时长,可自行调整
                    durationMillis = 800
                    // 时间节点对应缩放值,格式为 [目标值] at [时间毫秒数]
                    0.5f at 100
                    0.8f at 200
                    1.2f at 400
                    0.6f at 600
                    0.8f at 800
                    
                    // 可选:给单个关键帧分段配置插值器,示例:
                    // 1.2f at 400 with FastOutSlowInEasing
                }
            )
        )
    }
}

使用时直接将动画值绑定到组件的缩放属性即可:

Box(
    modifier = Modifier
        .graphicsLayer(
            scaleX = scaleAnimatable.value,
            scaleY = scaleAnimatable.value
        )
        .clickable { /* 点击逻辑 */ }
) {
    // 组件内容
}

内容的提问来源于stack exchange,提问作者Notsfsssf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:42:02