左右滑动实现activity之间的跳转
生活随笔
收集整理的這篇文章主要介紹了
左右滑动实现activity之间的跳转
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先來看一下實(shí)現(xiàn)效果
1. BaseActivity extends Activity
首先,由于activity類之間存在很多共性 ,比如跳以及滑動等事件,所以需要抽象出一個父類來,簡化代碼量。
附代碼:
/*** 按照1、2、3的步驟走* / public abstract class BaseActivity extends Activity {private GestureDetector gestureDetector;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);//2、實(shí)例化手勢管理的對象,用于管理屏幕監(jiān)聽事件onTouchEvent(event)傳遞過來的手勢動作gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener(){@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY) {//監(jiān)聽手勢的移動 到底是從左往右還是從右往左//e1:手指按下的移動事件.float e1X = e1.getRawX();float e1Y = e1.getRawY();// e2 : 手指移動的動作事件.float e2X = e2.getRawX();float e2Y = e2.getRawY();// 跳轉(zhuǎn)判斷方式一:手指滑動的X軸方向的如果小于50,無效果,單位是pxif (Math.abs(e2X - e1X) < 50) {Toast.makeText(getApplicationContext(),"左右滑動小于50px", 0).show();return false;// 跳轉(zhuǎn)判斷方式二:比較e2,e1得到的Y值,獲取兩數(shù)絕對值判斷是否上下滑動} else if (Math.abs(e2Y - e1Y) > 200) {Toast.makeText(getApplicationContext(), "手勢上下滑動", 0).show();return false;// 比較e2,e1得到的Y值,獲取兩數(shù)絕對值判斷是否左右滑動} else if (Math.abs(e2X - e1X) > 50) {// 判斷是否左滑if ((e2X - e1X) > 0) {Toast.makeText(getApplicationContext(), "右滑", 0).show();// 判斷是否右滑} else {Toast.makeText(getApplicationContext(), "左滑", 0).show();}return true;}//跳轉(zhuǎn)判斷方式三: 直接進(jìn)行左右比值判斷 稍微一有滑動就發(fā)生跳轉(zhuǎn)if(e1.getX()-e2.getX()>0){//子類實(shí)現(xiàn)跳轉(zhuǎn)的方法showNextPage();}if(e1.getX()-e2.getX()<0){//子類實(shí)現(xiàn)跳轉(zhuǎn)的方法showPrePage();}return super.onFling(e1, e2, velocityX, velocityY);}});}//1、首先監(jiān)聽屏幕上響應(yīng)的事件類型@Overridepublic boolean onTouchEvent(MotionEvent event) {//3、通過手勢處理類,接收多種類型的事件,用作處理gestureDetector.onTouchEvent(event);return super.onTouchEvent(event);}//跳轉(zhuǎn)到下一頁的抽象方法protected abstract void showNextPage();//跳轉(zhuǎn)到上一頁的抽象方法protected abstract void showPrePage();//實(shí)現(xiàn)跳轉(zhuǎn)下一頁的方法public void nextPage(View view){showNextPage();}//實(shí)現(xiàn)跳轉(zhuǎn)上一頁的方法public void prePage(View view){showPrePage();} }總結(jié)
以上是生活随笔為你收集整理的左右滑动实现activity之间的跳转的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: page,client,offset区别
- 下一篇: 开发机多用户 xdebug 远程调试 P