안드로이드 앱을 구현하면 Activity와 Fragment를 사용하는데 뷰가 setContentView가 되기 전까지
빈 화면을 띄우는걸 볼 수 있다. 뷰가 그려지기 전까지 잠시 나오는 화면을 Splash Screen이라고 한다.
여러 블로그를 검색해보니 여러 방법으로 구현할 수 있지만 공통적으로 말하는 것은 사용자가 불편하지 않을만큼 보여주라는 것이다.
안그래도 바쁜데 의미없이 시간을 잡아먹는다면 사용자 입장에서 좋은 서비스라고 느끼기 어려울 것이다.
구현방법은 간단하다.
splash.xml 구현 → 테마 추가 → 테마 설정 → 진입화면에서 테마 복구
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/black" />
<item
android:drawable="@drawable/ic_baseline_access_alarm"
android:gravity="center">
</item>
</layer-list>
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.SleepAlram" parent="Theme.MaterialComponents.NoActionBar">
. . .
</style>
<!--SplashTheme-->
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
</style>
</resources>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pachuho.sleepAlram">
<application
. . .>
<activity
android:name=".MainActivity"
android:theme="@style/SplashTheme"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.Theme_SleepAlram)
super.onCreate(savedInstanceState)
. . .
}
좋은 정보 감사합니다!