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