实现的思路
1.查找控件
//查找控件
private void findView() {
vp_guide = (ViewPager) findViewById(R.id.vp_guide);
}
2.初始化ViewPager的数据
//初始化ViewPager数据
private void initData() {
mImageViews = new ArrayList<>();
for (int i = 0; i < imageIds.length; i++) {
ImageView mImageView = new ImageView(this);
mImageView.setBackgroundResource(imageIds[i]);
mImageViews.add(mImageView);
}
}
3.自定义ViewPager的适配器
//自定义适配器
class GuideAdapter extends PagerAdapter {
@Override
public int getCount() {
return mImageViews.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView mImageView = mImageViews.get(position);
container.addView(mImageView);
return mImageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
}
4.设置适配器及监听
//设置适配器
private void setAdapter() {
vp_guide.setAdapter(new GuideAdapter());
vp_guide.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
currentItem=position;
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
vp_guide.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_UP:
endX = event.getX();
endY = event.getY();
WindowManager windowNanager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
//获取屏幕宽度
Point mPoint = new Point();
windowNanager.getDefaultDisplay().getSize(mPoint);
int width = mPoint.x;
//首先要确定的是,是否到了最后一页,然后判断是否向左滑动,并且滑动距离是否符合你所设定的要求
if (currentItem == (mImageViews.size() - 1) && startX - endX >= (width / 6)) {
goToMainActivity();
//页面跳转的动画
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_in_left);
}
default:
break;
}
return false;
}
});
}
5.跳转到主页面的方法
//进入主界面
private void goToMainActivity() {
Intent mIntent = new Intent(this, MainActivity.class);
startActivity(mIntent);
finish();
}