我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Android如何实现仿微信右滑返回功能

这篇文章将为大家详细讲解有关Android如何实现仿微信右滑返回功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

我们提供的服务有:网站设计、做网站、微信公众号开发、网站优化、网站认证、邛崃ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的邛崃网站制作公司

先上效果图,如下:

Android如何实现仿微信右滑返回功能

先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现。 接着就是返回时,有滑动效果,很显然这个是Acitivty切换动画实现的。好啦,分析完了就开干。下面上代码:

@Override
 public boolean onTouchEvent(MotionEvent event) {
  switch (event.getAction()){
   case MotionEvent.ACTION_DOWN:
    x=event.getX();
    y=event.getY();
//    Log.e("ACTION_DOWN","x="+x);
    break;
   case MotionEvent.ACTION_MOVE:
    float mX = event.getX();
    float mY = event.getY();
    float dX = Math.abs(mX-x);
    float dY = Math.abs(mY-y);
    scollX = mX-x;
    if (isScroll && scollX>0){
     view.scrollTo(-(int) scollX,0);
    }
    break;
   case MotionEvent.ACTION_UP:
    if (isScroll && scollX>300){
     finish();
     overridePendingTransition(R.anim.bga_sbl_activity_backward_enter,R.anim.bga_sbl_activity_backward_exit);
    }else {
     isScroll = false;
     view.scrollTo(0,0);
    }
    break;
  }
  return false;
 }

这段代码主要是实现了 手指在屏幕上滑动时,判断方向是否是右滑,是的话就用scrollTo()来实现Activity的滑动,当滑动超过300px时就执行返回,并且加上切换动画。看到这里细心的朋友应该会发现scrollTo()方法滑动的只是内容,并不是View的本身,那是怎么实现整个activity的滑动的呢?没错,如果只是上面这部分代码,当你滑动时,是看不懂上一个界面的内容的,因为我们的View还在,这里说一下这个View是我获取的activity的根布局。好啦,既然是这个View挡住了我们的的上一层布局,那么是不是只要让它透明就可以了呢?答案是肯定的,我记得要让根布局透明只需要改一下主题即可,如下:


@android:color/transparent
true

只需要把上面两行代码添加到你的主题中即可。

感觉已经大功告成了,其实不是的,前面我们说了,当手指从屏幕的最左边向右滑时,才实发滑动,这个就涉及到事件分发了。比如我们一个按钮的宽占满全屏,那当我们手指在按钮的最左侧按下时,是执行点击事件还是执行滑动呢?这个时候就需要用到dispatchTouchEvent来处理这个问题。下面看代码:

@Override
 public boolean dispatchTouchEvent(MotionEvent ev) {
  if (ev.getAction()==MotionEvent.ACTION_DOWN){
   float x = ev.getX();
//   Log.e("dispatchTouchEvent","x="+x);
   if (x<=50&&isCanScroll){
    isScroll = true;
    return true;
   }
  }
  return super.dispatchTouchEvent(ev);
 }

上面的代码是当我们的手指在屏幕最左侧按下时,如果小于50(这个数值可以根据需求自己设置),我们就认为用户需要右滑,于是,我们就消费掉,不往下一层传递。

当没有小于50时,正常执行。

整个流程已经讲完了,是不是很简单!这些代码最好放到Activity基类中实现!这样方便管理!

关于“Android如何实现仿微信右滑返回功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。


分享文章:Android如何实现仿微信右滑返回功能
URL网址:http://shouzuofang.com/article/iidgpi.html

其他资讯