繁体   English   中英

如何在Android中检测触摸事件

[英]How to detect touch events in Android

是否有可能检测到活动中的所有触摸事件并捕获它然后作为回传将该事件传递给另一个视图?

例如:

按钮1和按钮2.当按下按钮1时,我想捕获该触摸/点击事件并自动将该触摸事件传递给按钮2,基本上只需按一下/按下即可生成点击并将相同的点击传递给按钮2第二个按钮自动。

首先看看这个API描述。


boolean android.app.Activity.dispatchTouchEvent(MotionEvent ev)

public boolean dispatchTouchEvent(MotionEvent ev)从:API Level 1调用以处理触摸屏事件。 您可以覆盖它以在调度到窗口之前拦截所有触摸屏事件。 请务必将此实现称为应正常处理的触摸屏事件。

参数ev触摸屏事件。

返回boolean如果消耗了此事件,则返回true。

如您所见,您可以拦截所有触摸事件。

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
    // TODO Auto-generated method stub
    super.dispatchTouchEvent(ev);
    if(btn1.onTouchEvent(ev)){
        return btn2.onTouchEvent(ev);
    }else{
        return false;
    }
}

我认为这些代码就是您所看到的。

我想你可以从按下按钮取出TouchEvent,并调用另一个按钮,传入TouchEvent,但我不确定它会有多安全。 (Android可能会轰炸你)

更安全的解决方案是将Button子类化,并使用Observer设计模式。 您可以注册每个按钮以监听按下每个按钮的按钮,然后您就可以安全地在所有按钮之间传递TouchEvent。

如果您不熟悉Observer设计模式,请点击以下链接: http//en.wikipedia.org/wiki/Observer_pattern

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM