Android 側滑返回上一個Activity
来源:互联网 发布:电力电子技术知乎 编辑:程序博客网 时间:2024/06/05 22:51
继承该Activity则支持滑动返回。
import android.app.Activity;import android.view.MotionEvent;import android.view.VelocityTracker;/** * 支持滑动返回 * 继承该Activity则支持滑动返回 */public class SlideBackActivity extends 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) { this.overridePendingTransition(anim.slide_in_right, anim.slide_in_left1); 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); }}
阅读全文
0 0
- Android 側滑返回上一個Activity
- 【Android】Activity右滑返回的实现
- 【Android】Activity右滑返回的实现
- Android 捕获Activity 返回
- Android 左滑 返回上一个activity(销毁当前activity)
- android Activity右滑返回,退出当前activity
- android Activity右滑返回,退出当前activity
- android Activity右滑返回,退出当前activity
- Android 返回键 返回上一级Activity
- Android 返回键 返回上一级Activity
- Android 返回上一个界面,返回上一个Activity
- Android 从Activity中返回
- Android Activity 传值 返回值
- android返回到上一个Activity
- android activity 返回 刷新列表
- Android中Activity滑动返回。
- Android ActionBar 返回上一个Activity
- Android Activity向右滑动返回
- jquery点击加class在点击移除添加的class
- 删除前弹框确认删除吗?
- Go语言备忘录:反射的原理与使用详解
- 最大子数组—Lintcode
- Jmeter特殊情况一:登录请求中密码加密的情况
- Android 側滑返回上一個Activity
- Redis 讲解系列之 Redis的事务
- POJ 3580 SuperMemo (Splay)
- UVA-11093 Just Finish it up
- Nginx的启动、停止与重启
- 内存问题的排查工具和方法– Clang的AddressSanitizer
- 几种磁盘阵列技术
- 2017.10.12 内存管理
- 把 Nginx 创建为 Windows 的一个服务