你的位置:首页 > 软件开发 > 操作系统 > Android之 左右滑动菜单

Android之 左右滑动菜单

发布时间:2015-10-02 21:00:05
近来学习了极客学院有关于界面左右滑动的视频,就在这里写个博客,巩固一下知识点,以免忘了。这里主要介绍界面是如何左右滑动的:1.首先我们应该设置好将要滑动的三个界面,即leftMenu、middleMenu、rightMenu三个布局,并且放置好它们的位置,这段大家自己在源码中看2 ...

近来学习了极客学院有关于界面左右滑动的视频,就在这里写个博客,巩固一下知识点,以免忘了。

这里主要介绍界面是如何左右滑动的:

1.首先我们应该设置好将要滑动的三个界面,即leftMenu、middleMenu、rightMenu三个布局,并且放置好它们的位置,这段大家自己在源码中看

2.当位置放好后,就可以开始关于滑动方面的代码。

页面的滑动是通过点的坐标变化距离来进行来实现的。首先我们定义了20dp来确保最小下限滑动的距离,来确定是否进行了滑动;接着就可以进行判断页面的滑动方向,ACTION_DOWN、ACTION_MOVE、ACTION-UP分别对应了手指点击时的按下,移动,抬起时的事件。当按下时,我们获取此时点击点的坐标,随后我们实时获取活动过程中点的滑动坐标,后者减去前者就得到了滑动的距离。当滑动的距离大于TEST_DIS时,如果此时在左右滑动的距离大于在上下滑动距离,就置isLeftRightFragment为true,用于下面的判断。

private Point point = new Point();  private boolean isLeftRightFragment;  //设置比较值20;当移动小于20dp时,默认没有移动  private static final int TEST_DIS = 20;  private void getTypeEvent(MotionEvent ev) {    switch (ev.getActionMasked()) {    case MotionEvent.ACTION_DOWN:      point.x = (int) ev.getX();      point.y = (int) ev.getY();      break;    case MotionEvent.ACTION_MOVE:      int dX = Math.abs((int)ev.getX() - point.x);      int dY = Math.abs((int)ev.getY() - point.y);      if (dX>TEST_DIS&&dX>dY) {      //左右滑动        isLeftRightFragment = true;        isTestCompete = true;        point.x = (int) ev.getX();        point.y = (int) ev.getY();      }else if (dY>TEST_DIS&&dY>dX) {   //上下滑动        isLeftRightFragment = false;        isTestCompete = true;        point.x = (int) ev.getX();        point.y = (int) ev.getY();      }      break;    case MotionEvent.ACTION_UP:    case MotionEvent.ACTION_CANCEL:      break;    default:      break;    }    }

原标题:Android之 左右滑动菜单

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录