android右滑返回动画,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右滑返回动画,Android仿微信右滑返回功能的实例代码相关推荐
- php支付密码控件,Android高仿微信支付密码输入控件实例代码
这篇文章主要为大家详细介绍了Android高仿微信支付密码输入控件的具体实现代码,供大家参考,具体内容如下 像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现 ...
- android仿微信充值布局,Android 高仿微信支付数字键盘功能
现在很多app的支付.输入密码功能,都已经开始使用自定义数字键盘,不仅更加方便.其效果着实精致. 下面带着大家学习下,如何高仿微信的数字键盘,可以拿来直接用在自身的项目中. 先看下效果图: 1. 自定 ...
- Android仿微信小视频录制功能(二)
Android仿微信小视频录制功能(二) 接着上一篇,在完成了录制功能后,伟大的哲学家沃兹基索德曾经说过:"有录就有放.",那么紧接着就来实现播放功能,按照国际惯例,先上下效果图: ...
- android 今日头条加载动画,Android 仿今日头条简单的刷新效果实例代码
点击按钮,先自动进行下拉刷新,也可以手动刷新,刷新完后,最后就多一行数据.有四个选项卡. 前两天导师要求做一个给本科学生预定机房座位的app,出发点来自这里.做着做着遇到很多问题,都解决了.这个效果感 ...
- 小程序仿微信聊天按住说话功能
小程序仿微信聊天按住说话功能 实现:按住说话有录音动画,上滑可取消发送,松开发送录音 录音授权判断 # .wxml <view class="btn {{touchBtn?'hover ...
- php按住说话然后播放,小程序仿微信聊天按住说话功能
小程序仿微信聊天按住说话功能 实现:按住说话有录音动画,上滑可取消发送,松开发送录音 录音授权判断 # .wxml bind:longpress="onLongpress" cat ...
- android筛选功能代码,Android中 TeaScreenPopupWindow多类型筛选弹框功能的实例代码
Github地址 YangsBryant/TeaScreenPopupWindow (Github排版比较好,建议进入这里查看详情,如果觉得好,点个star吧!) 引入module allprojec ...
- web端仿微信朋友圈定位检索功能
web端仿微信朋友圈定位功能 1. 先看实现的效果. 2.实现思路 用户点击时通过高德地图接口的geolocation函数获取用户的经纬度和所在的城市.然后将经纬度和城市存储起来.以便于下面其他接口使 ...
- android 动态画直线,Android使用自定义view在指定时间内匀速画一条直线的实例代码...
本文讲述了Android使用自定义view在指定时间内匀速画一条直线的实例代码.分享给大家供大家参考,具体如下: 1.效果图: 2.自定义view实现 public class UniformLine ...
最新文章
- 零基础入门学习Python(21)-递归1
- shellinabox的安装使用
- WOLF ISP CCIE 方向优惠最后10天,价格低至13800!!
- java web如何配置ask_Javaweb新手之路之JavaWeb开发环境配置篇
- 《仙剑奇侠传online》游戏后台优化分析:CPU、内存与启动时间
- 活用变量字符串${var%%.*}
- C++基础10-类和对象之友元函数
- endnote无法同步原因_endnote不能同步(endnote retrieving references)的解决方法
- scatterpie | ggplot2的几何图形拓展包(1):如何在地图中添加饼图
- DirectInfo.GetFiles 排序
- 两种云原生技术在弹性计算的使用、原理和思考
- 渗透测试 重点方法检测网站漏洞
- 线性代数学习笔记——第十八讲——抽象矩阵的可逆性
- 超全软件下载网站和网页(一网一匠)
- 我的第二个独立开发的邮箱类App—“简邮”(支持QQ、雅虎、阿里云、Outlook)
- PHP CURL实现单线程、多线程方法
- 【音视频】音视频概念了解
- CSDN 写博客 word文档复制粘贴 图片粘贴 加载失败问题解决
- win10 keplerzl安装报错
- 基于Vue的医院内部管理系统(医生、患者、挂号、药房)文档+答辩PPt+项目源码+演示视频