Animierte Vektorbilder in Compose

Es gibt verschiedene Möglichkeiten, Vektoren in Compose zu animieren. Sie können eine der folgenden Optionen verwenden:

  • Dateiformat AnimatedVectorDrawable
  • ImageVector mit Compose-Animations-APIs, wie in diesem Medium-Artikel
  • Eine Drittanbieterlösung wie Lottie

Animierte Vektordrawables (experimentell)

Eine Sanduhr, deren Inhalt sich bewegt und die sich dreht
Abbildung 1. Animiertes Vektordrawable in Compose

Wenn Sie eine AnimatedVectorDrawable-Ressource verwenden möchten, laden Sie die Drawable-Datei mit animatedVectorResource und übergeben Sie einen boolean, um zwischen dem Start- und Endzustand des Drawables zu wechseln und die Animation auszuführen.

@Composable
fun AnimatedVectorDrawable() {
    val image = AnimatedImageVector.animatedVectorResource(R.drawable.ic_hourglass_animated)
    var atEnd by remember { mutableStateOf(false) }
    Image(
        painter = rememberAnimatedVectorPainter(image, atEnd),
        contentDescription = "Timer",
        modifier = Modifier.clickable {
            atEnd = !atEnd
        },
        contentScale = ContentScale.Crop
    )
}

Weitere Informationen zum Format der Drawable-Datei finden Sie unter Drawable-Grafiken animieren.