您的位置:首页 > 其它

GestureDetector应用实例

2013-11-28 15:14 295 查看
MotionEvent中定义了基本事件,View中定义了一些简单事件的处理接口,GestureDetector拓展了View中的事件接口,提供了一些复杂事件的接口。框架接口(API)的好处是框架已经帮我们定义好了为什么onDoubleClick表示双击事件,而我们只需要直接使用即可。下面通过实例说明如何使用GestureDetector类实现复杂事件。

package com.sean.gesturetest;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.widget.Toast;

public class MainActivity extends Activity {

private GestureDetector gesture;
CharSequence onDown = "onDown Event";
CharSequence onFling = "onFling Event";
CharSequence onLongPress = "onLongPress Event";
CharSequence onScroll = "onScroll Event";
CharSequence onShowPress = "onShowPress Event";
CharSequence onSingleTapUp = "onSingleTapUp Event";
private Context mContext = this;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gesture = new GestureDetector(this, new myGestureListener() {

});
}

@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return gesture.onTouchEvent(event);
}

private class myGestureListener implements OnGestureListener {

@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(mContext, onDown, Toast.LENGTH_SHORT).show();
return false;
}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
Toast.makeText(mContext, onFling, Toast.LENGTH_SHORT).show();
return false;
}

@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(mContext, onLongPress, Toast.LENGTH_SHORT).show();
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2,
float distanceX, float distanceY) {
// TODO Auto-generated method stub
Toast.makeText(mContext, onScroll, Toast.LENGTH_SHORT).show();
return false;
}

@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(mContext, onShowPress, Toast.LENGTH_SHORT).show();
}

@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
Toast.makeText(mContext, onSingleTapUp, Toast.LENGTH_SHORT).show();
return false;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: