Android Migrate splash screen to above Android 12
사용 언어: Kotlin 1.9.0
사용 버전: Android Studio Giraffe 2022.3.1
Android 12(API 32) 이상에서는 자동으로 시작 화면(Splash)을 보여줍니다. 그래서 하위 버전에서 따로 Splash를 만들었다면, 이중으로 화면이 보이게 되는 문제가 발생합니다.
그래서, Android 12 이상에서도 중복되지 않고 매끄럽게 작동하도록 만들어 보겠습니다.
공식 문서입니다.
https://developer.android.com/develop/ui/views/launch/splash-screen/migrate
사용 버전: Android Studio Giraffe 2022.3.1
안드로이드 Migrate splash screen to above Android 12를 알아보겠습니다.
Android 12(API 32) 이상에서는 자동으로 시작 화면(Splash)을 보여줍니다. 그래서 하위 버전에서 따로 Splash를 만들었다면, 이중으로 화면이 보이게 되는 문제가 발생합니다.
그래서, Android 12 이상에서도 중복되지 않고 매끄럽게 작동하도록 만들어 보겠습니다.
공식 문서입니다.
https://developer.android.com/develop/ui/views/launch/splash-screen/migrate
아직 변경하기 전이라서 두 번 로딩 화면이 불러와집니다. 느껴지시나요?
아직 변경하기 전이라서 두 번 로딩 화면이 불러와집니다. 느껴지시나요?앱 용
build.gradle로 갑니다.
compileSdk는 31 보다 위 버전으로 설정합니다.
dependencies에는
implementation "androidx.core:core-splashscreen:1.0.1"를 적어줍니다.
Sync now를 합니다.
style이나 themes 파일로 가서 위의 내용대로 만들어 줍니다.
windowSplashScreenBackground는 배경 색상.
postSplashScreenTheme은 이 화면 다음에 나타나는 기본 스타일을 지정해
줍니다.
windowSplashScreenAnimatedIcon에는 Vector 이미지만 넣습니다. 현재는
준비되지 않아서 다른 아이콘을 넣었습니다.
windowSplashScreenAnimationDuration은 넣지 않았습니다. 저는 움직이는
이미지를 넣지 않기 때문이죠.
다음은 manifest에 설정을 해주네요.
application 또는 activity에 theme을 위에서 만든 Theme.App.Starting으로
변경해 줍니다.
저는 application만 변경했습니다.
그다음은 해당 화면을 부릅니다.
onCreate에 super.onCreate() 이전에 부릅니다.
splashScreen으로 화면 전환 시간, 기타 등등 설정들을 조절할 수 있습니다.
실행해 봅시다.
조금 어색하죠?
저는 Splash에다가 여러 가지 작업이 들어간 뒤 불러옵니다.
이러한 경우에는 문서에서 이렇게 말합니다.
splashScreen.setKeepOnScreenCondition { true }를 사용하여 보여주지 않아도
되는 액티비티를 숨깁니다.
다시 실행해 봅시다.
자, 이제 깔끔한 것을 볼 수 있습니다.
끝.
카테고리: Android
댓글
댓글 쓰기
궁금한 점은 댓글 달아주세요.
Comment if you have any questions.