본문 바로가기
Language/Android

[Android] 안드로이드_초기/대표 화면 만들기 (feat. SplashActivity)

by 썸머워즈 2019. 10. 13.
반응형


안드로이드 SplashActivity 구성하기




안드로이드 SplashActivity란 무엇일까?


일반적으로 어떤 앱을 실행하게 되면 대표화면이 하나 나오는데 그부분을 담당하는게 SplashActivity이다.


(로딩 화면/ 초기 화면/ 대표 화면 등을 의미한다.)


1. SplashActivity 클래스 만들기

/**
* 앱 초기화면 Activity
*/
public class SplashActivity extends Activity {

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

try {
//Thread.sleep(3000); //대기 초 설정
startActivity(new Intent(SplashActivity.this, IntroActivity.class));
finish();
} catch (Exception e) {
CustomLog.e("Error", "SplashActivity ERROR", e);
}
}
}

우선 액티비티 클래스가 모여있는곳에 똑같은 방식으로 SplashActivity를 담당할 클래스를 하나 만들어준다.


로딩화면에 텀을 주기 위해 Thread.sleep() 을 이용하여 대기 초를 설정해준다.


2. 이미지 맵핑 시키기

<style name="SplashTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@drawable/background_splash</item>
</style>


위 화면처럼 저렇게 styles.xml 부분에서 style로 이미지를 지정해준다.



3. AndroidManifest.xml 에 초기화면으로 등록하기

<activity
android:name=".activity.intro.SplashActivity"
android:screenOrientation="portrait"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

이제 AndroidManifest.xml 에 위에서 선언한 액티비티를 등록하고, 이미지 매핑시켜주고 그다음에 가장 중요한 <intent-filter>부분을 옮기는 것이다.


초기에 이미 구현되어있는 프로젝트의 경우 저 <intent-filter> 부분이 .MainActivity  에 설정되어 있을텐데 그 부분을 SplashActivity로 옮겨줘야한다. (시작 지점을 정하는 부분이다.)


여기서 주의할 점은 SplashActivity는 가로모드가 지원되지 않기 때문에 portrait를 설정해주는것이다.


(새 프로젝트를 만들경우에는 만드는과정에 Default MainActivity.class 부분을 Splash로 바꿔 설정해주면 된다.)



이렇게 설정하고 나서 실행을 시켜주면 SplashActivity가 먼저 실행되며 로딩화면이 보이게 되며,


로딩화면을 여러개 주고 싶다면 다음에 실행될 Activity를 Main이 아니라 1번 처럼 intro 라던가 그런 이름으로 설정해주어 계속 연결시켜주면 된다.

반응형


댓글

TOP