메인액티비티가 실행되기 전까지 로딩화면을 보여주는 splash 화면을 효율적으로 적용해 보았습니다.
메인액티비티에 Splash Theme 을 적용하고, 메인액티비티가 생성되면 Theme 을 전체 프로젝트의 AppTheme 으로 변경하였습니다.
drawable 폴더 내에 splash 화면을 생성합니다.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/intropage"
android:gravity="center"/>
</item>
</layer-list>
values 폴더 내 themes 파일에 splash 를 위한 style 을 생성합니다.
<!--Splash theme -->
<style name="SplashTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowBackground">@drawable/background_splash</item>
</style>
AndroidManifest 파일 내에 MainActivity 에 theme 을 적용합니다.
<activity android:name=".view.main.MainActivity"
android:theme="@style/SplashTheme">
MainActivity 의 onCreate 내에 setTheme 함수를 이용하여 원래의 theme 으로 변경시켜 줍니다. super.onCreate(savedInstance)
가 호출되기 전에 setTheme 함수를 적용합니다.
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.TripProjectTheme)
super.onCreate(savedInstanceState)
}
https://velog.io/@pish11010/Android-Splash-Screen-구현
https://holika.tistory.com/entry/내-맘대로-정리한-안드로이드-스플래시Splash-화면은-어떻게-만들어야-효율적으로-활용할-수-있을까