android手势滑动关闭当前activity
来源:互联网 发布:arp软件是个什么软件 编辑:程序博客网 时间:2024/06/07 09:46
package com.bruce.testeventandscroll;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.GestureDetector;import android.view.MotionEvent;import android.view.Window;/** * 手势滑动测试demo * 步骤, * 1、实例化GestureDetector对象 * 2、实例化 GestureDetector.OnGestureListener 手势监听对象 * 3、覆写onTouchEvent方法,在onTouchEvent方法中将event对象传给gestureDetector.onTouchEvent(event);处理。 */public class MainActivity extends Activity { final int RIGHT = 0; final int LEFT = 1; private GestureDetector gestureDetector;//要想使用手势滑动,就必须要这个GestureDetector对象/** * 要实现手指在屏幕上左右滑动的事件需要实例化对象GestureDetector,new GestureDetector(MainActivity.this,onGestureListener); * 首先实现监听对象GestureDetector.OnGestureListener,根据x或y轴前后变化坐标来判断是左滑动还是右滑动 * 并根据不同手势滑动做出事件处理doResult(int action), 然后覆写onTouchEvent方法,在onTouchEvent方法中将event对象传给gestureDetector.onTouchEvent(event);处理。 */ /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* 此处需要gestureDetector对象实例化*/ gestureDetector = new GestureDetector(MainActivity.this, onGestureListener);/** * //需要传入一个Context和一个手势监听OnGestureListener * //下面是源码 public GestureDetector(Context context, OnGestureListener listener) { this(context, listener, null); } */ } /** * 在此实例化OnGestureListener监听的实例 */ private GestureDetector.OnGestureListener onGestureListener = new GestureDetector.SimpleOnGestureListener() { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //e1就是初始状态的MotionEvent对象,e2就是滑动了过后的MotionEvent对象 //velocityX和velocityY就是滑动的速率 float x = e2.getX() - e1.getX();//滑动后的x值减去滑动前的x值 就是滑动的横向水平距离(x) float y = e2.getY() - e1.getY();//滑动后的y值减去滑动前的y值 就是滑动的纵向垂直距离(y) Log.w("tag", "x>" + x); Log.w("tag", "y>" + y); Log.w("tag", "velocityX>" + velocityX); Log.w("tag", "velocityY>" + velocityY); //如果滑动的横向距离大于100,表明是右滑了,那么就执行下面的方法,可以是关闭当前的activity if (x > 100) { doResult(RIGHT); Log.w("tag", "RIGHT>" + x); } //如果滑动的横向距离大于100,表明是左滑了(因为左滑为负数,所以距离大于100就是x值小于-100) if (x < -100) { Log.w("tag", "LEFT>" + x); doResult(LEFT); } return true; } }; /** * 将MotionEvent事件处理交给gestureDetector对象 */ @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: System.out.println(" ACTION_DOWN");//手指在屏幕上按下 break; case MotionEvent.ACTION_MOVE: System.out.println(" ACTION_MOVE");//手指正在屏幕上滑动 break; case MotionEvent.ACTION_UP: System.out.println(" ACTION_UP");//手指从屏幕抬起了 break; default: break; } return gestureDetector.onTouchEvent(event); } public void doResult(int action) { switch (action) { case RIGHT: System.out.println("go right"); finish(); break; case LEFT: System.out.println("go left"); break; } }}
手指滑动了一下,log打印如下
03-23 23:18:38.888 17282-17282/com.bruce.testeventandscroll I/System.out: Button ACTION_DOWN03-23 23:18:38.956 17282-17282/com.bruce.testeventandscroll I/System.out: Button ACTION_MOVE03-23 23:18:39.008 17282-17282/com.bruce.testeventandscroll I/System.out: Button ACTION_MOVE03-23 23:18:39.008 17282-17282/com.bruce.testeventandscroll I/System.out: Button ACTION_MOVE03-23 23:18:39.008 17282-17282/com.bruce.testeventandscroll I/System.out: Button ACTION_UP03-23 23:18:39.008 17282-17282/com.bruce.testeventandscroll W/tag: x>-3.99446103-23 23:18:39.008 17282-17282/com.bruce.testeventandscroll W/tag: y>-22.98205603-23 23:18:39.008 17282-17282/com.bruce.testeventandscroll W/tag: velocityX>6.79630303-23 23:18:39.008 17282-17282/com.bruce.testeventandscroll W/tag: velocityY>-1417.2805
0 0
- android手势滑动关闭当前activity
- Android 手势滑动切换activity
- 用SwipeBackLayout实现滑动关闭当前Activity
- 【android开发】手势滑动关闭Activity(随手指消失)的辅助类的实现
- Android 滑动关闭Activity 示例
- Android仿微信activity滑动关闭
- android 向右滑动关闭Activity
- android手势操作&&实现滑动切换activity
- DrawerLayout 关闭手势滑动
- DrawerLayout 关闭手势滑动
- SlidingMenu关闭手势滑动
- tabhost activity 手势滑动
- Activity滑动手势检测
- 手势滑动销毁Activity
- 手势滑动销毁Activity
- Android之Activity滑动关闭(销毁)
- Android activity 单手操作 滑动关闭
- [Android]通过ViewDragHelper实现滑动关闭Activity
- PHP时间和日期管理
- 八大排序算法冒泡排序法
- 入职第一天
- R语言画图大全(实战3,6,11)
- 马太效应
- android手势滑动关闭当前activity
- 趣文:C++程序员离职前丧心病狂的报复
- 浏览器访问web服务器的流程
- 第五章—面向对象(上)
- 八大排序算法之快速排序法
- openCv 导入 android studio
- OpenCV基础
- 设置只读后禁止后撤键
- MyEclipse 优化技巧