
実装
アニメーションのJSONファイルはres/raw
内に入れておく。
Dependencyには以下を追加。
implementation("com.airbnb.android:lottie-compose:(最新Version)")
Sync完了したら以下のように実装
@Composable
private fun MyLottieView() {
val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.<#ファイル名#>))
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
LottieAnimation(
composition = composition,
iterations = LottieConstants.IterateForever,
modifier = Modifier.fillMaxSize(0.5f)
)
}
}
// おまけ: LottieAnimationの全容
LottieAnimation(
composition: LottieComposition?, // Lottieアニメーションのコンポジションデータ。JSONファイルから読み込まれる。
modifier: Modifier = Modifier,
isPlaying: Boolean = true, // アニメーションが再生中かどうかを示す真偽値。
restartOnPlay: Boolean = true, // `isPlaying`がtrueになったときにアニメーションを最初から再開するかどうか。
clipSpec: LottieClipSpec? = null, // アニメーションの特定の部分を切り抜いて表示するための設定。
speed: Float = 1f, // アニメーションの再生速度。1fが通常速度
iterations: Int = 1, // アニメーションの繰り返し回数。LottieConstants.IterateForeverで無限ループ
outlineMasksAndMattes: Boolean = false, // マスクとマットをアウトラインとして描画するかどうか。パフォーマンスに影響する可能性あり
applyOpacityToLayers: Boolean = false, // レイヤーの不透明度を適用するかどうか。
enableMergePaths: Boolean = false, // ベクターパスのマージを有効にするかどうか。複雑なアニメーションで必要になることがある
renderMode: RenderMode = RenderMode.AUTOMATIC, // アニメーションのレンダリング方法。AUTOMATIC、SOFTWARE、HARDWARE。
reverseOnRepeat: Boolean = false, // 繰り返し時にアニメーションを逆再生するかどうか。
maintainOriginalImageBounds: Boolean = false, // 元の画像のバウンディングボックスを維持するかどうか。
dynamicProperties: LottieDynamicProperties? = null, // アニメーションの特定の部分を動的に変更するためのプロパティ。色や形状などを変更。
alignment: Alignment = Alignment.Center,
contentScale: ContentScale = ContentScale.Fit, // Composableのサイズに対するアニメーションのスケール方法。
clipToCompositionBounds: Boolean = true, // アニメーションがコンポジションの境界線内でクリップされるかどうか。
clipTextToBoundingBox: Boolean = false, // テキストレイヤーがそのバウンディングボックス内でクリップされるかどうか。
fontMap: Map<String, Typeface>? = null, // アニメーションで使用されるフォントのマッピング。
safeMode: Boolean = false, // 安全モードを有効にするかどうか。互換性の問題を防ぐのに役立つ
asyncUpdates: AsyncUpdates = AsyncUpdates.AUTOMATIC // 非同期アップデートの処理方法。
)