xxxxxxxxxx
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import android.content.Intent;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.taimoorsikander.cityguide.HelperClasses.SliderAdapter;
import com.taimoorsikander.cityguide.R;
import com.taimoorsikander.cityguide.User.UserDashboard;
public class OnBoarding extends AppCompatActivity {
//Variables
ViewPager viewPager;
LinearLayout dotsLayout;
SliderAdapter sliderAdapter;
TextView[] dots;
Button letsGetStarted;
Animation animation;
int currentPos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_on_boarding);
//Hooks
viewPager = findViewById(R.id.slider);
dotsLayout = findViewById(R.id.dots);
letsGetStarted = findViewById(R.id.get_started_btn);
//Call adapter
sliderAdapter = new SliderAdapter(this);
viewPager.setAdapter(sliderAdapter);
//Dots
addDots(0);
viewPager.addOnPageChangeListener(changeListener);
}
public void skip(View view) {
startActivity(new Intent(this, UserDashboard.class));
finish();
}
public void next(View view) {
viewPager.setCurrentItem(currentPos + 1);
}
private void addDots(int position) {
dots = new TextView[4];
dotsLayout.removeAllViews();
for (int i = 0; i < dots.length; i++) {
dots[i] = new TextView(this);
dots[i].setText(Html.fromHtml("•"));
dots[i].setTextSize(35);
dotsLayout.addView(dots[i]);
}
if (dots.length > 0) {
dots[position].setTextColor(getResources().getColor(R.color.colorPrimaryDark));
}
}
ViewPager.OnPageChangeListener changeListener = new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
addDots(position);
currentPos = position;
if (position == 0) {
letsGetStarted.setVisibility(View.INVISIBLE);
} else if (position == 1) {
letsGetStarted.setVisibility(View.INVISIBLE);
} else if (position == 2) {
letsGetStarted.setVisibility(View.INVISIBLE);
} else {
animation = AnimationUtils.loadAnimation(OnBoarding.this, R.anim.bottom_anim);
letsGetStarted.setAnimation(animation);
letsGetStarted.setVisibility(View.VISIBLE);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
};
}
xxxxxxxxxx
<?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"
android:background="@color/lightWhite"
android:padding="20dp"
tools:context=".Common.OnBoarding">
<androidx.viewpager.widget.ViewPager
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/relativeLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</androidx.viewpager.widget.ViewPager>
<Button
android:id="@+id/skip_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000"
android:drawableEnd="@drawable/skip_icon"
android:drawableRight="@drawable/skip_icon"
android:onClick="skip"
android:padding="10dp"
android:text="@string/skip_btn"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<RelativeLayout
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="150dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent">
<Button
android:id="@+id/get_started_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:text="@string/let_get_started"
android:visibility="invisible" />
<LinearLayout
android:id="@+id/dots"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:paddingBottom="20dp" />
<Button
android:id="@+id/next_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:background="#00000000"
android:drawableEnd="@drawable/next_btn"
android:drawableRight="@drawable/next_btn"
android:onClick="next"
android:paddingBottom="30dp" />
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>