안드로이드 앱에서 Splash 화면 만들기
Splash 화면은 앱이 처음 실행될 때 표시되는 로고 또는 이미지 화면입니다. 안드로이드에서는 아래 방법으로 구현할 수 있습니다.
✅ 방법 1: 기본 SplashActivity 사용
1. SplashActivity 생성
- Android Studio에서 새로운 Empty Activity를 만들고 SplashActivity로 이름을 지정합니다.
2. 이미지 준비
- Splash 화면에 사용할 이미지를 drawable 폴더에 추가합니다.
3. activity_splash.xml 설정
- ImageView를 추가하여 화면을 구성합니다.
- android:scaleType="centerCrop"을 설정하면 이미지가 화면을 꽉 채웁니다.
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/bg_splash" />
4. SplashActivity 코드 작성
- 일정 시간(예: 2초) 후 MainActivity로 이동하도록 설정합니다.
class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)
Handler(Looper.getMainLooper()).postDelayed({
startActivity(Intent(this, MainActivity::class.java))
finish()
}, 2000) // 2초 후 MainActivity 실행
}
}
5. AndroidManifest.xml 수정
- SplashActivity를 앱의 시작 화면 (Launcher Activity) 로 설정합니다.
- android:noHistory="true"를 추가하면, 사용자가 뒤로 가기를 눌렀을 때 Splash 화면으로 돌아가지 않습니다.
<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
6. 스타일 설정 (styles.xml)
- SplashTheme을 정의하여 배경을 설정합니다.
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:background">@drawable/bg_splash</item>
</style>
✅ 방법 2: 안드로이드 12 이상 (Splash Screen API 사용)
안드로이드 12부터는 Google에서 제공하는 Splash Screen API를 사용하면 더 자연스러운 전환이 가능합니다.
1. build.gradle 설정
- build.gradle (Module: app)에 라이브러리를 추가합니다.
dependencies {
implementation 'androidx.core:core-splashscreen:1.0.1'
}
2. 테마 설정 (res/values/themes.xml)
- SplashScreen API를 활용하려면 windowSplashScreen 속성을 설정해야 합니다.
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<item name="android:windowBackground">@drawable/bg_splash</item>
<item name="windowSplashScreenBackground">@color/white</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_splash_icon</item>
<item name="windowSplashScreenAnimationDuration">2000</item>
<item name="postSplashScreenTheme">@style/Theme.MyApp</item>
</style>
3. MainActivity에서 적용
- installSplashScreen()을 setContentView() 전에 호출합니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
installSplashScreen() // Splash 화면 적용
setContentView(R.layout.activity_main)
}
}
🚀 정리
방법 적용 가능 버전 장점
SplashActivity 사용 | 안드로이드 모든 버전 | 구현이 쉽고 간단함 |
Splash Screen API | 안드로이드 12 이상 | 더 자연스러운 전환 가능 |
➡️ 안드로이드 12 이상에서는 Splash Screen API를 추천하고, 하위 버전에서는 SplashActivity를 사용하면 좋습니다.