Ich habe versucht, einen Kompass in Jetpack Compose zu machen. Aber ich habe ein Problem mit der Animation vorhanden. Ich benutze AnimateFloatAsState wie folgt:
Code: Select all
val angle: Float by animateFloatAsState(
targetValue = -rotation, \\ rotation is retrieved as argument
animationSpec = tween(
durationMillis = UPDATE_FREQUENCY, \\ rotation is retrieved with this frequency
easing = LinearEasing
)
)
Image(
modifier = Modifier.rotate(angle),
// rest of the code for image
)
Alles sieht gut aus, aber das Problem tritt auf, wenn die Rotation von 1 auf 359 oder auf die entgegengesetzte Weise geändert wird. Die Animation dreht sich nicht nach links 2 Grad, sondern geht nach rechts 358 Grad, was schlecht aussieht. Gibt es eine Möglichkeit, rotierende Animation zu erstellen, die den kürzesten Weg verwenden würde?