关闭

Android手势识别器

141人阅读 评论(0) 收藏 举报
分类:
--------------------监听屏幕滑动事件------------

// 1.声明一个手势识别器
	private GestureDetector gd;

// 2.初始化一个手势识别器
		gd = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {

			// 滑动事件
			@Override
			public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
				// e1表示第一个按下的点 e2表示第二个按下的点

				// 识别下一步 第一个点要比第二个点大200个像素
				if ((e1.getRawX() - e2.getRawX()) > 200) {
					ShowNext();
					// 事件已经处理 无需在进行处理返回true
					return true;
				}
				return super.onFling(e1, e2, velocityX, velocityY);
			}

		});

// 3.用手势识别器,检查屏幕上的手势
	public boolean onTouchEvent(MotionEvent event) {
		gd.onTouchEvent(event);
		return super.onTouchEvent(event);
	}

-----(2).多个界面监听手势识别器

创建一个类继承Activity


 创建需要的抽象方法

public abstract class BaseSetupGestureDetector extends Activity {
	private GestureDetector gd;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		gd = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {

			@Override
			public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

				// 上一步
				if ((e2.getRawX() - e1.getRawX()) > 200) {
					ShowPrevious();
					return true;
				}

				// 下一步
				if ((e1.getRawX() - e2.getRawX()) > 200) {
					ShowNext();
					return true;
				}
				return super.onFling(e1, e2, velocityX, velocityY);
			}

		});
	}

	// 3.用手势识别器,检查屏幕上的手势
	public boolean onTouchEvent(MotionEvent event) {
		gd.onTouchEvent(event);
		return super.onTouchEvent(event);
	}

	public abstract void ShowNext();

	public abstract void ShowPrevious();

	// 点击事件
	public void Setup_Next(View view) {
		ShowNext();
	}

	// 点击事件
	public void Setup_Previous(View view) {
		ShowPrevious();
	}

}





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14305次
    • 积分:390
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:4篇
    • 译文:0篇
    • 评论:9条
    文章分类
    最新评论