Step 1 home.xml


<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 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"

    android:orientation="vertical"

    android:gravity="center"

    tools:context=".Home_activity">


    <TextView


        android:text="WELCOME"

        android:textSize="50dp"

        android:textColor="#0066ff"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        tools:ignore="MissingConstraints" />






</RelativeLayout>



 Step 2 main.Java

package in.learncodewithrk.androidintrosliderexample;


import androidx.appcompat.app.AppCompatActivity;

import androidx.viewpager.widget.ViewPager;


import android.content.Intent;

import android.content.SharedPreferences;

import android.os.Bundle;

import android.view.View;

import android.view.Window;

import android.view.WindowManager;

import android.view.animation.Animation;

import android.view.animation.AnimationUtils;

import android.widget.Button;


import com.google.android.material.tabs.TabLayout;


import java.util.ArrayList;

import java.util.List;


public class MainActivity extends AppCompatActivity {

    private ViewPager screenPager;

    IntroViewPagerAdapter introViewPagerAdapter;

    TabLayout tabIndicator;

    Button btnSkip;

    Button btnGetStarted;

    Animation btnAnim;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);


        //make screen to be fullscreen

        requestWindowFeature(Window.FEATURE_NO_TITLE);

        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);


        if (restorePrefData()) {

            Intent mainActivity = new Intent(getApplicationContext(), Home_activity.class);

            startActivity(mainActivity);

            finish();

        }

        setContentView(R.layout.activity_main);

        //Views

        btnSkip = findViewById(R.id.btn_skip);

        btnGetStarted = findViewById(R.id.btn_get_started);


        tabIndicator = findViewById(R.id.tab_indicator);

        btnAnim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.button_animation);


        //fill data description

        final List<ScreenItem> mList = new ArrayList<>();

        mList.add(new ScreenItem("Lorem Ipsum", "Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's", R.drawable.agreement));

        mList.add(new ScreenItem("Lorem Ipsum", "Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's", R.drawable.document));

        mList.add(new ScreenItem("Lorem Ipsum", "Lorem Ipsum is simply dummy text of the printing and typesetting\nindustry. Lorem Ipsum has been the industry's", R.drawable.startup));


        //Setup ViewPager

        screenPager = findViewById(R.id.screen_viewpager);

        introViewPagerAdapter = new IntroViewPagerAdapter(this, mList);

        screenPager.setAdapter(introViewPagerAdapter);


        //setup tab layout with viewpager

        tabIndicator.setupWithViewPager(screenPager);



        //skip button

        btnSkip.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                screenPager.setCurrentItem(mList.size());

            }

        });


        tabIndicator.addOnTabSelectedListener(new TabLayout.BaseOnTabSelectedListener() {

            @Override

            public void onTabSelected(TabLayout.Tab tab) {

                if (tab.getPosition() == mList.size() - 1) {

                    loadLastScreen();

                }

            }


            @Override

            public void onTabUnselected(TabLayout.Tab tab) {


            }


            @Override

            public void onTabReselected(TabLayout.Tab tab) {


            }

        });


        //get started button

        btnGetStarted.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent mainActivity = new Intent(getApplicationContext(), MainActivity.class);

                startActivity(mainActivity);

                savePrefsData();

                finish();

            }

        });

    }


    private boolean restorePrefData() {

        SharedPreferences preferences = getApplicationContext().getSharedPreferences("myPrefs", MODE_PRIVATE);

        Boolean isIntroActivityOpenedBefore = preferences.getBoolean("isIntroOpened", false);

        return isIntroActivityOpenedBefore;

    }


    private void savePrefsData() {

        SharedPreferences preferences = getApplicationContext().getSharedPreferences("myPrefs", MODE_PRIVATE);

        SharedPreferences.Editor editor = preferences.edit();

        editor.putBoolean("isIntroOpened", true);

        editor.apply();

    }


    private void loadLastScreen() {

        btnSkip.setVisibility(View.INVISIBLE);

        btnGetStarted.setVisibility(View.VISIBLE);

        tabIndicator.setVisibility(View.INVISIBLE);

        btnGetStarted.setAnimation(btnAnim);

    }

}



READ MORE >>

GITHUB : https://github.com/LearncodeWithRk/Androidx-Intro-Slider-Example