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
相关产品推荐
相关产品推荐

