Skip to content

Commit

Permalink
Created basic Lottie animation on compose screen.
Browse files Browse the repository at this point in the history
  • Loading branch information
canerkaseler committed Jun 24, 2023
1 parent 9f262e9 commit 0f4b4d9
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 20 deletions.
@@ -0,0 +1,43 @@
package com.canerkaseler.composelottie

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.compose.LottieCompositionSpec
import com.airbnb.lottie.compose.LottieConstants
import com.airbnb.lottie.compose.rememberLottieComposition

@Composable
fun ComposeLottieScreen() {
Box(modifier = Modifier
.fillMaxSize()
.background(color = Color.White)
){
ComposeLottieAnimation(modifier = Modifier.align(alignment = Alignment.Center))
}
}

@Composable
fun ComposeLottieAnimation(modifier: Modifier) {

val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(R.raw.anim_loading_success_failed))

LottieAnimation(
modifier = modifier,
composition = composition,
iterations = LottieConstants.IterateForever,
)
}

@Preview
@Composable
fun MainScreenPreview() {
ComposeLottieScreen()
}
23 changes: 3 additions & 20 deletions app/src/main/java/com/canerkaseler/composelottie/MainActivity.kt
Expand Up @@ -6,10 +6,7 @@ import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.canerkaseler.composelottie.ui.theme.ComposeLottieTheme

class MainActivity : ComponentActivity() {
Expand All @@ -19,25 +16,11 @@ class MainActivity : ComponentActivity() {
ComposeLottieTheme {
// A surface container using the 'background' color from the theme
Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
Greeting("Android")

// Lottie animation screen.
ComposeLottieScreen()
}
}
}
}
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}

@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
ComposeLottieTheme {
Greeting("Android")
}
}

0 comments on commit 0f4b4d9

Please sign in to comment.