先上效果图,如下:

先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现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右滑返回动画,Android仿微信右滑返回功能的实例代码相关推荐

  1. php支付密码控件,Android高仿微信支付密码输入控件实例代码

    这篇文章主要为大家详细介绍了Android高仿微信支付密码输入控件的具体实现代码,供大家参考,具体内容如下 像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现 ...

  2. android仿微信充值布局,Android 高仿微信支付数字键盘功能

    现在很多app的支付.输入密码功能,都已经开始使用自定义数字键盘,不仅更加方便.其效果着实精致. 下面带着大家学习下,如何高仿微信的数字键盘,可以拿来直接用在自身的项目中. 先看下效果图: 1. 自定 ...

  3. Android仿微信小视频录制功能(二)

    Android仿微信小视频录制功能(二) 接着上一篇,在完成了录制功能后,伟大的哲学家沃兹基索德曾经说过:"有录就有放.",那么紧接着就来实现播放功能,按照国际惯例,先上下效果图: ...

  4. android 今日头条加载动画,Android 仿今日头条简单的刷新效果实例代码

    点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据.有四个选项卡. 前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里.做着做着遇到很多问题,都解决了.这个效果感 ...

  5. 小程序仿微信聊天按住说话功能

    小程序仿微信聊天按住说话功能 实现:按住说话有录音动画,上滑可取消发送,松开发送录音 录音授权判断 # .wxml <view class="btn {{touchBtn?'hover ...

  6. php按住说话然后播放,小程序仿微信聊天按住说话功能

    小程序仿微信聊天按住说话功能 实现:按住说话有录音动画,上滑可取消发送,松开发送录音 录音授权判断 # .wxml bind:longpress="onLongpress" cat ...

  7. android筛选功能代码,Android中 TeaScreenPopupWindow多类型筛选弹框功能的实例代码

    Github地址 YangsBryant/TeaScreenPopupWindow (Github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧!) 引入module allprojec ...

  8. web端仿微信朋友圈定位检索功能

    web端仿微信朋友圈定位功能 1. 先看实现的效果. 2.实现思路 用户点击时通过高德地图接口的geolocation函数获取用户的经纬度和所在的城市.然后将经纬度和城市存储起来.以便于下面其他接口使 ...

  9. android 动态画直线,Android使用自定义view在指定时间内匀速画一条直线的实例代码...

    本文讲述了Android使用自定义view在指定时间内匀速画一条直线的实例代码.分享给大家供大家参考,具体如下: 1.效果图: 2.自定义view实现 public class UniformLine ...

最新文章

  1. 零基础入门学习Python(21)-递归1
  2. shellinabox的安装使用
  3. WOLF ISP CCIE 方向优惠最后10天,价格低至13800!!
  4. java web如何配置ask_Javaweb新手之路之JavaWeb开发环境配置篇
  5. 《仙剑奇侠传online》游戏后台优化分析:CPU、内存与启动时间
  6. 活用变量字符串${var%%.*}
  7. C++基础10-类和对象之友元函数
  8. endnote无法同步原因_endnote不能同步(endnote retrieving references)的解决方法
  9. scatterpie | ggplot2的几何图形拓展包(1):如何在地图中添加饼图
  10. DirectInfo.GetFiles 排序
  11. 两种云原生技术在弹性计算的使用、原理和思考
  12. 渗透测试 重点方法检测网站漏洞
  13. 线性代数学习笔记——第十八讲——抽象矩阵的可逆性
  14. 超全软件下载网站和网页(一网一匠)
  15. 我的第二个独立开发的邮箱类App—“简邮”(支持QQ、雅虎、阿里云、Outlook)
  16. PHP CURL实现单线程、多线程方法
  17. 【音视频】音视频概念了解
  18. CSDN 写博客 word文档复制粘贴 图片粘贴 加载失败问题解决
  19. win10 keplerzl安装报错
  20. 基于Vue的医院内部管理系统(医生、患者、挂号、药房)文档+答辩PPt+项目源码+演示视频

热门文章

  1. python分布式多进程框架 Ray
  2. 确定填充介质的矩形波导单模传输TE10波的工作频率
  3. shell里写个简单循环
  4. 微波浅谈(一)更新中
  5. CentOS6.5 linux 逻辑卷管理 调整分区大小:/dev/mapper/VolGroup-lv_root 50G 47G 16M 100%
  6. 计蒜客 蒜头君的数轴
  7. python错误笔记
  8. SQL中datetime和timestamp的区别
  9. 最新实战讲解.htaccess文件rewrite规则
  10. net use 使用