Android中的拦截触摸事件
问题描述:
如何拦截Android中的触摸事件,确保现有的触摸工作流程不受影响。基本上我想添加一些触摸可视化器以便知道用户在屏幕上触摸的位置,从而确保如果用户试图滚动桌面视图,当用户拖动他的手指时触摸可视化器被显示,而且桌面视图也容易地滚动。Android中的拦截触摸事件
在iOS中,有一个类UIWindow的sendEvent方法正是这样做的。不确定Android是否有类似的东西。
感谢
答
覆盖Activity.dispatchTouchEvent()
并在那里做触摸处理。总是返回super.dispatchTouchEvent()
以确保在逻辑执行后以正常方式处理它。
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
/* your code here */
return super.dispatchTouchEvent(event);
}
+0
非常感谢,可能这是我一直在寻找的方法。非常类似于iOS的sendEvent方法。 – 2014-09-30 20:08:58
答
http://developer.android.com/reference/android/view/View.OnTouchListener.html在这个环节有alook。这非常简单。谷歌它有很多例子。
yourview.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
在Android中,触摸事件从底层向上流动。除非您从触摸事件返回true,否则触摸事件不会消耗。如果您希望将其消耗掉,请从触摸事件返回true。这样你就可以在任务上创建多个触摸事件。 – 2014-09-30 20:04:22