Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

nexon-api.zip 압축을 풀면 nexon-api.svg 있습니다.

프로젝트 -> app -> src -> main -> assets 폴더 생성 있으면 nexon-api.svg 에 추가하면 됩니다.

build.gradle.kts ->

implementation("io.coil-kt:coil-compose:2.6.0")

implementation("io.coil-kt:coil-svg:2.6.0") 두개 추가하세요.

@Composable
fun MainLoad(modifier: Modifier = Modifier) {
    val context = LocalContext.current
    var load by rememberSaveable { mutableStateOf(false) }
    var director by rememberSaveable { mutableStateOf(false) }

    if (load) {
        // 만약 로고가 끝난후 이동할 함수 (기본 MainActivity) 사용
        MainActivity(modifier)
        return
    }

    val logoAlpha = remember { Animatable(1f) }
    val logoScale = remember { Animatable(1f) }
    val textAlpha = remember { Animatable(0f) }

    val imageLoader = remember {
        ImageLoader.Builder(context)
            .components { add(SvgDecoder.Factory()) }
            .build()
    }

    LaunchedEffect(Unit) {
        delay(500)

        logoAlpha.animateTo(0f, tween(200))
        logoAlpha.animateTo(1f, tween(200))

        logoScale.animateTo(1.08f, tween(500, easing = FastOutSlowInEasing))

        director = true
    }

    if (director) {
        LaunchedEffect(Unit) {
            textAlpha.animateTo(1f, tween(1000))
            delay(2000)
            load = true
        }
    }

    Box(
        modifier = Modifier
            .fillMaxSize()
            .background(Color(0xFF0D0D0D))
            .clickable(
                interactionSource = remember { MutableInteractionSource() },
                indication = null
            ) { load = true }
    ) {

        Text(
            text = "화면을 클릭하여 스킵하기",
            color = Color.Red.copy(alpha = 0.6f),
            fontSize = 16.sp,
            modifier = Modifier
                .align(Alignment.TopCenter)
                .padding(top = 24.dp)
        )

        Column(
            modifier = Modifier.align(Alignment.Center),
            horizontalAlignment = Alignment.CenterHorizontally
        ) {
            AsyncImage(
                model = ImageRequest.Builder(context)
                    .data("file:///android_asset/nexon-api.svg")
                    .build(),
                imageLoader = imageLoader,
                contentDescription = null,
                modifier = Modifier
                    .fillMaxWidth(0.7f)
                    .aspectRatio(215f / 13f)
                    .graphicsLayer {
                        alpha = logoAlpha.value
                        scaleX = logoScale.value
                        scaleY = logoScale.value
                    },
                contentScale = ContentScale.Fit
            )

            if (director) {
                Spacer(modifier = Modifier.height(12.dp))
                Text(
                    text = "이용약관을 준수합니다.",
                    color = Color.White.copy(alpha = 0.7f),
                    fontSize = 16.sp,
                    modifier = Modifier.graphicsLayer {
                        alpha = textAlpha.value
                    }
                )
            }
        }
    }
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages