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);
}
}
GITHUB : https://github.com/LearncodeWithRk/Androidx-Intro-Slider-Example
0 Comments