Lottie animation Jetpack Compose

Зависимости в build.gradle:

implementation("com.airbnb.android:lottie-compose:6.1.0")

settings.gradle:

maven { setUrl("https://oss.sonatype.org/content/repositories/snapshots/") }

MianActivity:

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ComposeLottieTheme {
val composition by rememberLottieComposition(
spec = LottieCompositionSpec.Asset("anim.json")
)
var isPlaying by remember {
mutableStateOf(false)
}
var isComplete by remember {
mutableStateOf(false)
}
val animSpec = LottieClipSpec.Progress(
0f,
if(isComplete) 1f else 0.5f
)


Column(
modifier = Modifier.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally
) {
LottieAnimation(
composition = composition,
isPlaying = isPlaying,
speed = 1f,
iterations = if(isComplete) 1 else LottieConstants.IterateForever,
reverseOnRepeat = true,
clipSpec = animSpec
)
Button(
onClick = {
isPlaying = true
}) {
Text(text = "Download")
}
Button(
onClick = {
isComplete = true
}) {
Text(text = "Finish")
}
Button(
onClick = {
isComplete = false
}) {
Text(text = "Restart")
}
}
}
}
}
}

Добавить комментарий

Ваш адрес email не будет опубликован.