动作事件/触摸注册与两个重叠视图

时间:2015-02-21 08:37:45

标签: android android-layout touch multi-touch motionevent

我正在为Android编写游戏。我有一个正常的GLSurfaceView,我正在渲染我的图形并使用public boolean onTouchEvent(MotionEvent me)方法注册触摸输入,例如转动相机。在一个单独的类中,我以编程方式创建一个包含HUD的FrameLayout。这是在this.addContentView(FL_HUD, new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT))的GLSurfaceView上添加的。 HUD包含Image View,其触摸侦听器设置为.setOnTouchListener,创建另一个我可以读出的Motion事件。

TouchListeners / MotionEvents都可以工作,所以当我触摸我的图像视图时,会调用其TouchListener,当我触摸屏幕上的其他位置时,会调用主Activity的TouchListener。但是当我触摸屏幕时尝试触摸图像视图或在触摸屏幕时尝试触摸ImageView时它不起作用,换句话说,一次只有一个touchListener处于活动状态。

如何设法在两个重叠视图上启用多点触控?

1 个答案:

答案 0 :(得分:1)

当您触摸屏幕时,所有触摸都会转到单个视图。这意味着第二个手指将不会转到另一个触摸处理程序,但将转到与第一次触摸相同的触摸处理程序。您最好的选择是为两个视图编写单个触摸处理程序,并自己进行命中测试。