스플래시 화면은 앱을 실행할 때 나타나는 화면으로 단순히 빈 화면을 나타낼 때 보다 앱 실행이 빨라보이는 효과가 있다.
스플래시 화면은 다음 조건에서 나타난다.
Android 12 이상부터는 해당 가이드를 통해서 스플래시 화면 구현이 가능하다.
Android 12 이전의 경우 여러 구현 방법이 있는데, 크게 2가지 방법이 있는 것 같다.
일반적인 액티비티처럼 레이아웃을 만들어 사용하는 방법이다.
문제점은 액티비티가 실행돼야 레이아웃이 표시되기 때문에 실행되기 전에는 하얀 화면이 나타난다.
액티비티가 실행되기 전에 나타나는 하얀 화면을 바꾸고 싶으면 앱의 테마를 이용하면 된다.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white" />
<item
android:drawable="@drawable/ic_launcher_foreground"
android:gravity="center" />
</layer-list>
스플래시 화면으로 사용한 드로워블 파일을 만든다.
layer-list 에 대한 내용은 공식 가이드를 참조
<style name="Splash" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowBackground">@drawable/drawable_splash</item>
</style>
스플래시 테마를 생성하고 만들었던 드로워블 파일을 windowBackground 에 추가한다.
<activity
android:name=".MainActivity"
android:theme="@style/Splash">
마지막으로 AndroidManifest.xml 파일에서 스플래시 화면의 테마를 설정하면 끝
setTheme(R.style.Theme_AllTest)
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_custom)
추가로 액티비티의 onCreate() 에서 setTheme() 를 사용해 원래 테마로 바꾸면 앱을 실행했을 때만 스플래시 화면이 보이게 된다.
단점으로는 드로워블 파일로 화면을 구성하기 때문에 애니메이션이나 복잡한 구조의 화면을 사용하기에는 힘든 것 같다.