본문 바로가기
안드로이드 자바

[Android][Java] AppIntroPage 만들기

by teamnova 2022. 12. 30.
728x90

오늘은 App 시작시 튜토리얼을 보여주는 페이지를 AppIntroPage를 사용해서 빠르게 만들어 보도록 하겠습니다.

 

1. 라이브러리 추가

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
        
    }
}

    dependencies {
        implementation 'com.github.AppIntro:AppIntro:6.2.0'
      }

 

2. 인트로 Activity 만들기

package com.example.stickcode;

import androidx.fragment.app.Fragment;
import android.content.Intent;
import android.os.Bundle;
import com.github.appintro.AppIntroFragment;
import com.github.appintro.AppIntroPageTransformerType;

public class AppIntro extends com.github.appintro.AppIntro {

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


        addSlide(AppIntroFragment.createInstance(// 슬라이드 화면 만들기
                "제목1", // 제목
                "슬라이드 설명1", // 슬라이드 설명
                R.drawable.ic_slide1, // 슬라이드 이미지
                R.color.black // 슬라이브 배경색
        ));

        addSlide(AppIntroFragment.createInstance(
                "제목2",
                "슬라이드 설명2",
                R.drawable.ic_slide2,
                R.color.purple_200
        ));

        addSlide(AppIntroFragment.createInstance(
                "제목3",
                "슬라이드 설명3",
                R.drawable.ic_slide3,
                R.color.purple_500
        ));

        addSlide(AppIntroFragment.createInstance(
                "제목4",
                "슬라이드 설명4",
                R.drawable.ic_slide4,
                R.color.teal_700
        ));
        // 슬라이드 전환모션
        setTransformer(AppIntroPageTransformerType.Depth.INSTANCE);

        // 인디케이터 상태봐를 숨길지 보여줄지
        showStatusBar(true);

        // 화면전환시 걸리는 시간
        setScrollDurationFactor(2);

        // 화면전환시 두 슬라이드의 색이 부드럽게 전환되는 기능
        setColorTransitionsEnabled(true);

        // 뒤로가기 버튼을 눌렀을때  슬라이드 종료 방지하기
        setSystemBackButtonLocked(true);

        // 하단 기본 메뉴키 안보이게하기
        setImmersiveMode();

        // 인디케이터 보이게할지 안보이게할지
        setIndicatorEnabled(true);
    }
	
    // 스킵 버튼을 눌렀을때
    @Override
    protected void onSkipPressed(Fragment currentFragment) {
        super.onSkipPressed(currentFragment);
        startActivity(new Intent(getApplicationContext(),MainActivity.class));
        finish();
    }
	
    // 완료 버튼을 눌렀을때
    @Override
    protected void onDonePressed(Fragment currentFragment) {
        super.onDonePressed(currentFragment);
        startActivity(new Intent(getApplicationContext(),MainActivity.class));
        finish();
    }
}

 

3. 매니페스트에 AppIntro Activity를 런처 액티비티로 변경

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

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Stickcode"
        tools:targetApi="31">
        <activity
            android:name=".AppIntro"
            android:exported="true"
            android:label="My App Intro"
            android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
            <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>