Compose 中的动画矢量图像

您可以通过几种不同的方式在 Compose 中为矢量添加动画。您可以使用以下任一方法:

  • AnimatedVectorDrawable 文件格式
  • 使用 Compose Animation API 实现 ImageVector,如这篇 Medium 文章中所述
  • 第三方解决方案,例如 Lottie

动画矢量可绘制对象(实验性)

沙漏正在为其内容添加动画效果并旋转
图 1. Compose 中的动画矢量可绘制对象

如需使用 AnimatedVectorDrawable 资源,请使用 animatedVectorResource 加载可绘制对象文件,并传入 boolean 以在可绘制对象的开始和结束状态之间切换,从而执行动画。

@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
    )
}

如需详细了解可绘制文件的格式,请参阅为可绘制图形添加动画