
Android
package com.example.viewpagerdemo;import
Android.app.Activity;import
Android.content.Context;import
Android.support.v4.view.ViewPager;import
Android.util.Log;import
Android.view.MotionEvent;import
Android.widget PagerAdapter;import
Android.widget.Scroller;public class BTViewPager extends ViewPager {private static final String TAG = "dzt_pager";private static final int MOVE_LIMITATION = 100;private float mLastMotionX;private int mCurScreen;private Scroller mScroller;public BTViewPager(Context context) {super(context);init(context);}public BTViewPager(Context context, AttributeSet attrs) {super(context, attrs);init(context);}private void init(Context context) {mScroller = new Scroller(context);mCurScreen = 0;}@Overridepublic boolean onTouchEvent(MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_MOVE) {//当滑动距离小于MOVE_LIMITATION时,禁止滑动if (Math.
ABS(event.getX() - mLastMotionX) < MOVE_LIMITATION) {return false;}else {//更新最后一次滑动时的x坐标mLastMotionX = event.getX();//更新当前显示的页面mCurScreen++;//判断是否有需要的页面if (mCurScreen >= g
etcount()) {//返回false以结束触摸事件return false;}//设置滑动距离为0setScrollingParameters(0, 0);//开始滑动操作startScroll(mCurScreen, 1, 0, g
etcount() - 1);}}else if (event.getAction() == MotionEvent.ACTION_UP) {//判断是否停止触摸事件if (Math.
ABS(event.getX() - mLastMotionX) >= MOVE_LIMITATION) {//更新最后一次滑动时的x坐标mLastMotionX = event.getX();//更新当前显示的页面mCurScreen++;//判断是否有需要的页面if (mCurScreen >= g
etcount()) {//返回true以结束触摸事件return true;}//设置滑动距离为0setScrollingParameters(0, 0);//开始滑动操作startScroll(mCurScreen, 1, 0, g
etcount() - 1);}}return false;}}