首页 / 操作系统 / Linux / Android开发之手势识别GestureDetector
Android对手势的支持非常到位,要识别手势,有以下步骤:1,Activity继承OnGestureDetector2,在类中声明GestureDetector gd;3,在onCreate中实例化gd = new GestureDetector(this);4,触摸委托给手势 public boolean onTouchEvent(MotionEvent e){ return gd.onTouchEvent(e); //把事件委托给gd }但有时候我们不能把所有的事件都委托给手势,需要接收屏幕抬起事件: if(e.getAction() == MotionEvent.ACTION_UP){//负责监听屏幕抬起事件 isGoOn = false; if(t1 != null){ //t1.stop(); t1.interrupt(); t1 = null; if(vib != null){ vib.cancel();//取消震动 } } }这里我们举了一个取消震动的事件5,重写手势方法:public boolean onDown(MotionEvent arg0) { //触摸按下 Toast.makeText(this,"onDown" , 8000) .show(); return false; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //在屏幕上"拖过" Toast.makeText(this , "onFling" , 8000) .show(); return false; } @Override public void onLongPress(MotionEvent e) { //长按事件,我们使用手机的时候,通常会有弹出菜单的效果 Toast.makeText(this ,"onLongPress" , 8000) .show(); } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { //"滚动"运动 Toast.makeText(this ,"onScroll" , 8000) .show(); return false; } @Override public void onShowPress(MotionEvent e) { //屏幕按下,没有移动和松开的方法 Toast.makeText(this ,"onShowPress" , 8000) .show(); } @Override public boolean onSingleTapUp(MotionEvent e) { //轻触屏幕 Toast.makeText(this ,"onSingleTapUp" , 8000) .show(); return false; }实现这些方法,手势基本就差不多了,当然还有自定义手势,那是更深一个层次的,在此就不多说了。
收藏该网址