유혁의 개발 스토리

[Android] 안드로이드 Splash Activity (어플 설명 액티비티, 어플 대표 화면) 만들기 본문

Android

[Android] 안드로이드 Splash Activity (어플 설명 액티비티, 어플 대표 화면) 만들기

유혁. 2017. 7. 13. 20:00

 

카카오톡 실행시켜보면

처음에 카카오톡 이미지가 나오고 1초뒤에 카톡이 실행됩니다.

 

어플리케이션의 대표 레이아웃을 넣어 어플리케이션의 이미지를 담당하는 액티비티입니다.

 

 

만드는 방법은 간단합니다.

 

프로젝트 생성에 Default MainActivity.class 를 Splash로 변경합니다.

 

 

다음 설정은 기호에 맞게 설정하시면됩니다.

 

 

 

이 화면에서 Activity name 을 Splash라 하겠습니다.

 

 

 

 

 

프로젝트가 생성되자마자 기본으로 생성된 패키지 내에 MainPage 클래스를 생성합니다.

 

 

 

Splash 레이아웃도 하나 만들어줘야겠죠?

만들어줍니다.

 

 

 

Splash로 사용할 대표 이미지를 넣어줍니다.

 

자 이제 준비가 끝났습니다.

 

코드를 작성해볼까요?

 

 

 

Splash.class

 


import android.app.Activity;
import android.content.Intent;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;

public class Splash extends Activity {

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

setContentView(R.layout.activity_splash);

Handler hd = new Handler();
hd.postDelayed(new splashhandler(), 3000); // 1초 후에 hd handler 실행 3000ms = 3초

}

private class splashhandler implements Runnable{
public void run(){
startActivity(new Intent(getApplication(), MainPage.class)); //로딩이 끝난 후, ChoiceFunction 이동
Splash.this.finish(); // 로딩페이지 Activity stack에서 제거
}
}

@Override
public void onBackPressed() {
//초반 플래시 화면에서 넘어갈때 뒤로가기 버튼 못누르게 함
}

}

 

 

MainPage.class

import android.app.Activity;
import android.os.Bundle;

/**
* Created by YooJongHyeok on 2017-07-13.
*/

public class MainPage extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

 

activity_splash.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/splash">

</LinearLayout>

 

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="메인 페이지입니다." />

</LinearLayout>

 

 

 

중요한것! 액티비티를 주가하면

매니페스트에 정의 해주어야합니다.

 

 

manifests.xml

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

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".Splash"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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

<activity android:name=".MainPage"/> <!--이부분 추가-->

</application>
</manifest>

어플리케이션 실행해볼까요?

 

 

 

 

쨘~ 수고하셨습니다.