屏幕上的Android Touch事件

时间:2011-04-13 06:07:31

标签: android touch

当用户触摸任何Android屏幕时,我想找出任何事件。 我发现特定活动的触摸事件,但不是所有的屏幕,请给我一个   溶液

4 个答案:

答案 0 :(得分:23)

试试这段代码

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

答案 1 :(得分:15)

使用onTouchEvent()时可能遇到的问题是,由于您的视图层次结构在活动之上还有其他视图,因此触摸覆盖此事件的视图(按钮,编辑文本等)不会再去看你的活动,你就不会收到它们。

您应该使用dispatchTouchEvent(),因为这会以相反的方式传播,从活动到其他视图并始终被调用。

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    // Your code here
    return super.dispatchTouchEvent(ev);
}

答案 2 :(得分:0)

android触摸事件逐级调度,从活动开始到视图组和视图。比如Activity - RelativeLayout - Button,有很多覆盖方法可以控制触摸事件。 This may help you

答案 3 :(得分:-1)

我认为这不可能。

您可以使用额外的课程来接收所有活动中的所有触摸事件。 为此,你必须在每项活动中实施路过。

publich class TouchStore(){
  public void recieveTouchEvent(MotionEvent event){
  //Handle your events
  }
}

public boolean onTouchEvent(MotionEvent event) {
  touchStore.recieveTouchEvent(event);
}