본문 바로가기
소프트웨어 엔지니어가 되기위한 발걸음/안드로이드 스튜디오

앱을 처음 실행할 때 등장하는 Splash 화면 만들기

by 예쁜기억저장소 2025. 3. 28.

안드로이드 앱에서 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를 사용하면 좋습니다.