본문 바로가기
코딩일기/android studio

안드로이드 독학 23일 차 : SplashScreen 만들기

by 욱파이어니어 2021. 7. 25.
728x90
반응형

이번에 해볼것은 앱의 시작하는 부분에 intro 처럼 로고를 잠깐동안 띄워주는 SplashScreen을 만들어보려고 한다.

 

SplashScreen을 만들려면 아래의 단계를 거쳐야 한다.

 

1. SplashScreen의 화면 만들기

2. SplashScreen Activity 만들기

3. SplashScreen Activity에서 다른 화면으로 넘기기

4. Manifest.xml에서 첫 액티비티를 2번에서 만든 activity로 설정하기

 

 

그럼 이제 각 단계별로 살펴보자.

 

 

1. SplashScreen의 화면 만들기

 layout파일에서 SplashScreen의 xml을 만들어준다. 나같은 경우는 아래와 같이 만들었다.

 

splash_screen.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".view.splash.Splash"
    android:background="#00BFFF">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="COC"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:textSize="50dp"
        android:textColor="#FFFFFF"
        android:textStyle="bold"/>

</androidx.constraintlayout.widget.ConstraintLayout>

 

 

나랑 똑같이 할필요 없고 본인이 만들고 싶은 형태로 만들면 된다.

 

 

2. SplashScreen Activity 만들기

Activity를 새로 만들고 위에서 1번에서 만든 xml파일로 contentView를 한다.

public class Splash extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_screen);
    }
}

 

 

3. SplashScreen Activity에서 다른 화면으로 넘기기

이제 그럼 Handler를 생성해서 2초동안 화면을 보여주고 메인 화면으로 넘기는 부분을 구현한다.

소스는 아래와 같다.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_screen);
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                Intent intent = new Intent(getApplicationContext(), MainPage.class);
                startActivity(intent);
                finish();
            }
        },2500);
    }

 

 

4. Manifest.xml에서 첫 액티비티를 2번에서 만든 activity로 설정하기

 

이제 그럼 마지막으로 우리가 만든 Splash Activity를 첫 Activity로 만들어줘야 한다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="wook.co.coc">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".view.main_page.MainPage"></activity>
        <activity android:name=".view.splash.Splash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

위에서 중요한 부분은 우리가 사용할 부분의 첫 액티비티에 이걸 추가해주는것이다.

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

 

그럼 이제 Splash Screen이 완성이 된다.

 

반응형