상세 컨텐츠

본문 제목

[SplashActivity] How to Create a Splash Screen(Java)

IT Convergence Engineering/Android Programming

by Soo_buglosschestnut 2020. 7. 31. 23:37

본문

How to Create a Splash Screen(Java)


  • SplashActivity 생성

 

New Activity 생성하기

 

  • SplashActivity code
package com.android.tensor2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class SplashActivity extends AppCompatActivity {

    static int TIMEOUT_LIMITS = 1000;

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

        try {
            Thread.sleep(TIMEOUT_LIMITS); //대기 초 설정
            // TIMEOUT_LIMITS초가 지난 후 실행할 Activity class
            startActivity(new Intent(this, MainActivity.class));
            finish();
        } catch (Exception e) {
            Log.e("Error", "SplashActivity ERROR", e);
            e.printStackTrace();
        }
    }
}

→ splash screen이 동작하는 시간 TIMEOUT_LIMITS로 조절가능!


  • Styles.xml 수정하기

 

 

 

  • style.xml 추가할 부분 code
<style name="SplashActivityTheme" parent="Theme.AppCompat.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:windowBackground">@drawable/mushroom_background</item>
    </style>

 

<item name="android:windowBackground">######</item>

→ ######은 drawble폴더에 있는 image의 name을 쓴다.


  • AndroidManifest.xml 수정하기

 

 

→ MainActivity에 있던 <intent-filter>의 위치를 SplashActivity안으로 옮겨줌(<intent-filter>는 App을 시작할때 시작점의 위치를 알려주는 부분이다.

 

→ SplashActivity부분에 theme을 설정해주어야한다!!!(styles.xml에서 정해줬던 name으로)

 

  • AndroidManifest.xml 일부 code
	<activity android:name=".SplashActivity"
                    android:label="SplashActivity"
                    android:theme="@style/SplashActivityTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <activity android:name=".MainActivity">
            <!--intent-filter위치 SplashActivity로 옮기기-->
        </activity>

 

android:theme="@style/#####"

- styles.xml

<style name="#####" parent="Theme.AppCompat.NoActionBar">

 

→ styles.xml에서의 name #####과 android:theme에서의 ##### 동일!~

 


  • 실행화면

잘 작동^~^

 

Photo by Matthew Haggerty on Unsplash

Forest mushroom. Download this photo by Matthew Haggerty on Unsplash

unsplash.com

 

관련글 더보기