滑动关闭activity
// 手指上下滑动时的最小速度
private static final int YSPEED_MIN = 1000;
// 手指向右滑动时的最小距离
private static final int XDISTANCE_MIN = 50;
// 手指向上滑或下滑时的最小距离
private static final int YDISTANCE_MIN = 100;
// 记录手指按下时的横坐标。
private float xDown;
// 记录手指按下时的纵坐标。
private float yDown;
// 记录手指移动时的横坐标。
private float xMove;
// 记录手指移动时的纵坐标。
private float yMove;
// 用于计算手指滑动的速度。
private VelocityTracker mVelocityTracker;
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
createVelocityTracker(event);
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
xDown = event.getRawX();
yDown = event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
xMove = event.getRawX();
yMove = event.getRawY();
// 滑动的距离
int distanceX = (int) (xMove - xDown);
int distanceY = (int) (yMove - yDown);
// 获取顺时速度
int ySpeed = getScrollVelocity();
// 关闭Activity需满足以下条件:
// 1.x轴滑动的距离>XDISTANCE_MIN
// 2.y轴滑动的距离在YDISTANCE_MIN范围内
// 3.y轴上(即上下滑动的速度)<XSPEED_MIN,如果大于,则认为用户意图是在上下滑动而非左滑结束Activity
if (distanceX > XDISTANCE_MIN
&& (distanceY < YDISTANCE_MIN && distanceY > -YDISTANCE_MIN)
&& ySpeed < YSPEED_MIN) {
overridePendingTransition(R.anim.push_right_in,
R.anim.push_right_out);
finish();
}
break;
case MotionEvent.ACTION_UP:
recycleVelocityTracker();
break;
default:
break;
}
return super.dispatchTouchEvent(event);
}
/**
* 创建VelocityTracker对象,并将触摸界面的滑动事件加入到VelocityTracker当中。
*
* @param event
*
*/
private void createVelocityTracker(MotionEvent event) {
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
}
mVelocityTracker.addMovement(event);
}
/**
* 回收VelocityTracker对象。
*/
private void recycleVelocityTracker() {
mVelocityTracker.recycle();
mVelocityTracker = null;
}
/**
*
* @return 滑动速度,以每秒钟移动了多少像素值为单位。
*/
private int getScrollVelocity() {
mVelocityTracker.computeCurrentVelocity(1000);
int velocity = (int) mVelocityTracker.getYVelocity();
return Math.abs(velocity);
}
滑动关闭activity的更多相关文章
- Android中滑动关闭Activity
继承SwipeBackActivity即可实现向右滑动删除Activity效果 点击下载所需文件
- 用SwipeBackLayout实现滑动关闭当前Activity
说起SwipeBackLayout,我对它还是有一定怨念的.当时就希望能实现关闭当前Activity的效果,但完全搜不当相关的东西,最后好不容易搜到了这个SwipeBackLayout,觉得可以实现滑 ...
- 【android】侧滑关闭activity
最近在使用IOS系统的时候,发现侧滑关闭很实用,因为单手就可以操作,不需要点击左上角的回退按钮.或者返回键了. 所以打算在android上实现这个技术. 需求: 1:IOS只能在屏幕边缘开始,往中间进 ...
- 随手一写就是一个侧滑关闭activity
刚忙完一段时间,今天刚清闲会,就把以前写的东西整理整理.于是冥冥中发现有些东西完全可以共享出来,毕竟那么常见,而且简单实用. 实现原因 其实侧滑关闭activity在网上也有大量的文章去介绍他,我也有 ...
- Activity详解一 配置、启动和关闭activity
先看效果图: Android为我们提供了四种应组件,分别为Activity.Service.Broadcast receivers和Content providers,这些组建也就是我们开发一个And ...
- 分分钟教你集成沉浸式侧滑关闭Activity
网上搜索侧滑关闭Activity,几乎没有系统状态栏跟随页面一起联动的,有明显的撕裂感,而这里则是状态栏跟随页面联动的,说来集成也是简单,等会你就知道了. 个人习惯,写博客前喜欢先截图 1.首先以项目 ...
- 建立、配置和使用Activity——启动、关闭Activity
一个Android应用通常都会包含多个Activity,但只有一个Activity会作为程序的入口——当该Android应用运行时将会自启动并执行该Activity.至于应用中的其他Activity, ...
- 【Android】12.2 利用Intent启动和关闭Activity
分类:C#.Android.VS2015: 创建日期:2016-02-23 一.简介 Android应用程序中一般都有多个Activity,在Activity中,通过调用StartActivity方法 ...
- 【Android-关闭所有Activity】关闭activity之前的所有activity,重启actibity
Android关闭activity之前的所有activity,重启actibity 直接关闭一个activity之前的所有Activity页面 解决方法:清理activity堆栈 Intent ine ...
随机推荐
- HDU 2594 Simpsons’ Hidden Talents(KMP的Next数组应用)
Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- ie8默认主页/起始页无法修改
HKEY_CURRENT_USER\Software\Policies\Microsoft 展开Microsoft,查看其下是否包含子项 Internet Explorer? 若有,请删除.这一步应该 ...
- [Zz] DX depth buffer
声明:本文完全翻译自DX SDK Documentation depth buffer,通常被称为z-buffer或者w-buffer,是设备的一个属性,用来存储深度信息,被D3D使用.当D3D渲染一 ...
- 34. 求e的近似值
求e的近似值 #include <stdio.h> double fact (int n); int main() { int i, n; double item, sum; while ...
- web-content和web-info目录问题
1.资源文件只能放在WebContent下面,如 CSS,JS,image等.放在WEB-INF下引用不了. 2.页面放在WEB-INF目录下面,这样可以限制访问,提高安全性.如JSP,html 3. ...
- UITableview cell 的多选
利用NSMutableDictionary key值 来改变cell的状态 -(void)createUI{ table = [[UITableView alloc]initWithFrame:CG ...
- 免费api大全(更新中)
免费api大全(更新中) API大全 http://www.apidq.com/ (这个碉堡了) 天气接口 气象局接口 完整数据:http://m.weather.com.cn/data/10 ...
- 关于FireMonkey TGrid赋值的一点小研究
FireMoneky的TStringGrid用法和VCL里面的差不多, 但是另一个TGrid实在是奇葩, 几乎找不到给单元格赋值的方法(除了使用LiveBind) 看了其源码, 发现只要给某个Colu ...
- nrf51822裸机教程-PWM
先简单介绍一下PWM的原理. 原理很简单. 假设COUNTER是个从0开始递增的计数器. 我们设置两个值 counter0 和counter1 在 COUNTER 计数到counter0的值时候翻转 ...
- EFI
有CSM的UEFI BIOS应该可以支持EFI Native和legacy两种启动方式吧,在BIOS SETUP选项里面有的选. EFI在开机时的作用和BIOS一样,就是初始化PC,但在细节上却又不一 ...