我正在尝试用JetPack Compose动画做一些动画。我的例子需要一些帮助。
@Composable
fun RotateTest(
inputRotation:Int,
){
val rotationAnim by animateFloatAsState(
targetValue = inputRotation.toFloat(),
animationSpec = tween(
durationMillis = 5000
)
)
Box(modifier = Modifier.size(100.dp).graphicsLayer {
rotationZ = rotationAnim
}, contentAlignment = Alignment.Center){
Text(text = "rotating text")
}
}
它工作正常,当新的输入到达时停止并重新启动。但是我发现静态持续时间有问题。5秒对于0到180度旋转很好,但是对于0到10度旋转很长。所以我决定将静态时间值更改为基于当前和目标旋转的值,如下所示:
...
animationSpec = tween(
durationMillis =
<current rotation - target rotation * speed modifier>
)
)
...
但我不明白如何获得当前的旋转值的动画。
1条答案
按热度按时间at0kjp5o1#
你可以试试这样的方法: