Compose でのアニメーション化されたベクター画像

Compose でベクターをアニメーション化する方法はいくつかあります。次のいずれかを使用できます。

  • AnimatedVectorDrawable ファイル形式
  • ImageVector を Compose アニメーション API とともに使用する(こちらの 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
    )
}

ドローアブル ファイルの形式について詳しくは、ドローアブル グラフィックをアニメーションにするをご覧ください。