Android手势识别

来源:互联网 发布:java 给字符数组赋值 编辑:程序博客网 时间:2024/06/04 18:52

GestureDerector

    在android事件处理一般我们都在OntouchEvent这个函数中处理,但是在这个函数中判断我们是怎么滑的、单击或者双击、比较繁琐,android系统为我们提供了一个手势识别器GestureDerector,这个类是个里面有一些单击,双击,滑动等事件,我们只需要对应重写其中的方法即可。

一个简单的代码实现

步骤:     1. 定义手势识别器 GestureDetector     2. 实例化GestureDetector,传入监听器     3. 在手机屏幕上用户触发的事件是首先到activity的onTouchEvent事件中,我们把事件传递到手势识别器中。
来自手机卫士的一段代码
//定义手势识别器public GestureDetector gestureDetector;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //实例化手势识别器,并设置监听,根据不同需求重写监听器中的函数        gestureDetector = new GestureDetector(this,new GestureDetector.SimpleOnGestureListener(){            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {                //getRawX()相对于整个屏幕来说,以屏幕(0,0)为坐标原点                //getX()相对于当前控件的左上角为坐标原点                if((e2.getRawX() - e1.getRawX()) > 200){                    pre(null);                    return true;                }                if((e1.getRawX() - e2.getRawX()) > 200){                    next(null);                    return true;                }                return false;            };        });        setview();      }    public abstract void setview();    public abstract void pre(View view);    public abstract void next(View view);    @Override    public boolean onTouchEvent(MotionEvent event) {        //把事件传递给手势识别器        gestureDetector.onTouchEvent(event);        return super.onTouchEvent(event);    }
0 0
原创粉丝点击