Android学习笔记之手势(Gesture)检测

本文介绍了Android系统中如何利用GestureDetector进行手势检测。通过创建GestureDetector实例并设置OnGestureListener监听器,开发者可以响应用户的手势行为。文章详细阐述了GestureDetector.OnGestureListener中的方法及其触发条件,同时说明了将手势检测集成到Activity的TouchEvent事件处理中的步骤。

       android提供了手势检测以及相应的监听器,同时,android也允许开发者添加自定义手势,并且提供了响应的监听器。

       android为手势检测提供了一个GestureDetector类,其实例代表了一个手势检测器。创建GestureDetector时需要传入一个GestureDetector.OnGestureListener实例作为一个监听器,负责对用户的手势行为提供响应。

       GestureDetector.OnGestureListener监听器里提供了一些响应手势行为的方法(见下文程序代码),我们要注意各方法的触发条件以及触发时机。

 

       使用android手势检测需要如下两个步骤:

  1. 创建一个GestureDetector对象,创建该对象时必须实现一个GestureDetector.OnGestureListener监听器实例
  2. 为应用程序的Activity的TouchEvent事件绑定监听器,在事件处理中指定把Activity上的TouchEvent事件交由GestureDetector处理

       经过上面两个步骤之后,Activity上的TouchEvent事件就会交由GestureDetector处理,并检测是否触发了特定的手势操作。

代码如下:

public class MainActivity extends Activity implements OnGestureListener
{
	//定义手势监听器实例
	GestureDetector detector;

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//创建手势检测器
		detector=new GestureDetector(this,this);
	}

	//将该Activity上的触碰事件交给GestureDetector处理
	@Override
	public boolean onTouchEvent(MotionEvent event) 
	{
		return detector.onTouchEvent(event);
	}

	@Override
	public boolean onDown(MotionEvent event) 
	{
		Toast.makeText(this,"onDown",Toast.LENGTH_LONG).show();
		return true;
	}

	@Override
	public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX,	float velocityY) 
	{
        Toast.makeText(this,"onFling", Toast.LENGTH_LONG).show();
		return true;
	}

	@Override
	public void onLongPress(MotionEvent event) 
	{
        Toast.makeText(this,"onLongPress", Toast.LENGTH_LONG).show();		
	}

	@Override
	public boolean onScroll(MotionEvent event1, MotionEvent event2, float distanceX,float distanceY)
	{
        Toast.makeText(this,"onScroll",Toast.LENGTH_LONG).show();
		return true;
	}

	@Override
	public void onShowPress(MotionEvent event) 
	{
        Toast.makeText(this,"onShowPress", Toast.LENGTH_LONG).show();		
	}

	@Override
	public boolean onSingleTapUp(MotionEvent event)
	{
        Toast.makeText(this,"onSingleTapUp", Toast.LENGTH_LONG).show();
		return true;
	}

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值