安卓实现右滑返回效果
来源:互联网 发布:风险矩阵应用 编辑:程序博客网 时间:2024/06/18 12:39
IOS好像有一个默认的效果就是app里面的页面右滑就可以返回上一级。有时为了统一app效果安卓也需要实现。今天就简单实现一下右滑返回的效果。
直接贴代码:
package com.zgcw.wangqiang.myimage.activity;/** * Created by wangqiang on 16/7/11. */import android.support.v7.app.AppCompatActivity;import android.view.MotionEvent;import android.view.VelocityTracker;/** * 支持滑动返回 * 继承该Activity则支持滑动返回 */public class SlideBackActivity extends AppCompatActivity { //手指上下滑动时的最小速度 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需满足以下条件: //zhao.x轴滑动的距离>XDISTANCE_MIN //zhao1.y轴滑动的距离在YDISTANCE_MIN范围内 //zhao3.y轴上(即上下滑动的速度)<XSPEED_MIN,如果大于,则认为用户意图是在上下滑动而非左滑结束Activity if(distanceX > XDISTANCE_MIN &&(distanceY<YDISTANCE_MIN&&distanceY>-YDISTANCE_MIN)&& ySpeed < YSPEED_MIN) { 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 继承这个activity 就可以了。这只是个简单的demo 需要实现更多效果的可以在这个基础上继续添加修改就好
0 0
- 安卓实现右滑返回效果
- Activity右滑返回效果实现
- android 实现Activity的右滑返回效果
- Android实现类似IOS右滑返回的效果
- 右滑手势返回效果失效处理
- iOS 7.0实现右滑返回
- 【Android】Activity右滑返回的实现
- 【Android】Activity右滑返回的实现
- DrawLayout右滑效果特殊实现
- Android 快速实现右滑退出效果
- 安卓左上角返回按钮动画效果
- android项目添加activity右滑退出.返回的效果
- IOS7右滑返回
- iOS 右滑返回
- iOS右滑返回
- UINavigationController 右滑返回
- iOS页面右滑返回交互实现方案
- iOS自定义NavigationBar后如何实现全屏右滑返回
- QT5下SQLite的增删改查示例代码
- 深入理解----ThreadLocal的工作原理
- Hibernate学习笔记之ORM实体间关系“OneToOne”详解
- 九度OJ 1123 采药 0/1背包问题
- Servlet+JSP实现人员新增
- 安卓实现右滑返回效果
- 【NOIP2012借教室】(线段树区间操作)
- float 转定点计算加法和乘法
- php date函数各参数含义
- OCR文字识别可以帮你节省纸
- java对象和xml互转
- 判断素数(质数)
- MHA (二)
- PCIE接口理解