<순서>

1. activity_intro layout 준비
2. IntroActivity 클래스 준비
3. Androidmanifest.xml 수정 

수정 또는 추가할 파일은 다음과 같다.

안드로이드 함수 또는 클래스
함수 OR 클래스 설명 예시
Handloer class 핸들러 클래스는 간단히 말하자면 메시지를 전달하는 역할을 한다.  
handler.postDelayed(runnable, 1000)

postDelayed 함수는 몇초 후 실행되도록 명령하는 역활을 한다.

당므과 같이 1000으로 되어 있으면 1초 뒤에 작동되도록 하는 역활을 한다.

handler.postDelayed(runnable, 5000);

5초 뒤 작동

Runnable interface Runnable 인터페이스는 구현할 메소드가 run 메소드 하나인 인터페이스이다.  
run

run 메소드는 클래스에 속한 함수를 실행시키는 역할을 한다.

자세한 내용은 함수 및 클래스에서 확인해보도록하자

Intent 화면간 페이지 전환을 할 때 사용한다 Intent intent = new Intent(IntroActivity.this, MainActivity.class);
overridePendingTransition 타 액티비티에서 전환 또는 종료 함수이다. overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
setContentView 전달된 layout으로 화면을 구성할 때 사용한다. setContentView(R.layout.activity_intro);
public void onBackPressed() 어플리케이션이 다시 호출되는 것을 방지하고자할 때 사용하는 함수 @Override
public void onBackPressed(){
        super.onBackPressed();
        handler.removeCallbacks(runnable);
    }

1. activity_intro layout 준비

그럼 새 프로젝트에서 작업을 진행해보도록하자.

우선 다음과 같이 Intro 레이아웃을 만들어준뒤 인트로 사진을 넣어준다.

<Intro layaout 코드>

<?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=".IntroActivity">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@mipmap/ic_launcher_round" />
</androidx.constraintlayout.widget.ConstraintLayout>

2. IntroActivity 클래스 준비

package com.example.myapplication;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;

public class IntroActivity extends AppCompatActivity {
    // 핸들러 클래스의 핸들러 변수를 선언한다.
    private Handler handler;
    // Runnable 클래스의 runnable 변수를 선언한다.
    Runnable runnable = new Runnable() {
        @Override
        public void run() {
            // intent 안에 iIntroActivity 클래스와, MainActivity 클래스를 전달한다.
            // 화면간 페이지 전환을 할 때 사용함
            Intent intent = new Intent(IntroActivity.this, MainActivity.class);
            startActivity(intent);
            finish();
            overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //activity_intro layout으로 화면을 구성함
        setContentView(R.layout.activity_intro);
        ActionBar bar = getSupportActionBar();
        //상단에 액션바 타이틀을 없애기 위해 사용
        bar.setTitle("");
        //handler 변수에 Handler 객체를 넣는다.
        init();
        //1초 뒤에 화면 전환을 하게함
        handler.postDelayed(runnable, 5000);
    }

    // init 메소드는 handler 변수에 Handler 객체를 넣는 함수이다.
    public void init(){handler = new Handler();}

    // 어플리케션이 다시 호출되는 경우를 막기 위하여 호출해줌
    @Override
    public void onBackPressed(){
        super.onBackPressed();
        handler.removeCallbacks(runnable);
    }

}

3. Androidmanifest.xml 수정

다음과 같이 introActivity에 intent-filter를 넣어야 인트로 실행 후 해당 intent들이 실행될 수 있다.

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

    <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=".IntroActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>
    </application>

</manifest>

그럼 한번 프로젝트를 실행해보자.

프로젝트 실행시 다음과 같이 인트로 화면 출력 후

메인화면이 나오는 것을 확인할 수 있다.

+ Recent posts