본문 바로가기
Programing/android

[android studio] 스플래시(Splash) 화면 만들기

by TEXTBOX 2021. 11. 5.
728x90

앱 시작시에 나타나는 초기 화면을 만들어 보자.

1. 우선 시작시에 실행할 java 파일을 만들어 주자.
최소 실행할 파일을 [SplashActivity]라 이름을 주고 아래와 같이 코드를 넣었다.

Handler handler = new Handler();

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(intent); //2초 후 MainActivity를 실행해주자

                finish();
            }
        }, 2000); //2초간 화면을 띄우자
    }

 

2. AndroidManifest.xml 파일에 첫 실행되는 MainActivity 대신 SplashActivity로 실행되게끔 변경해 준다.

<activity android:name=".MainActivity"
	android:exported="true"
	android:theme="@style/Theme.app.NoActionBar">
</activity>
<activity
	android:name=".SplashActivity"
	android:theme="@style/SplashTheme">
		<intent-filter>
			<action android:name="android.intent.action.MAIN" />

			<category android:name="android.intent.category.LAUNCHER" />
		</intent-filter>
</activity>

그리고 SplashActivity에 대해서 테마를 지정해 주었다.
테마없이 Layout을 만들어 나타나도록 해도 가능하다.

3. themes.xml 파일에 위에서 지정한 테마를 만들어 주자.

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
	<item name="android:windowBackground">@drawable/splash_background</item>
</style>

 

4. drawable에 앞에서 지정해준 splash_background.xml 파일을 만들어 아래와 같이 만들어 준다.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/app_splash_img" />

    <item android:top="250dp">
        <bitmap android:src="@drawable/main_icon"
            android:gravity="top" />
    </item>
</layer-list>

 

이제 앱을 실행해서 해당 앱이 실행을 할때 첫 초기화면이 나타났다 사라지는 것을 볼 수 있다.

728x90

댓글