Android Migrate splash screen to above Android 12

사용 언어: Kotlin 1.9.0
사용 버전: 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

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)