Android开发之手势识别GestureDetector

Android对手势的支持非常到位,要识别手势,有以下步骤:

1,Activity继承OnGestureDetector

2,在类中声明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;
	}

实现这些方法,手势基本就差不多了,当然还有自定义手势,那是更深一个层次的,在此就不多说 了


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值