如何将屏幕分成两个同样大的空间,分别对触摸事件做出反应?

How can I separate the screen into two equally big spaces which react to touch events independently?

起初为了更好的想象,这是gui的样子。 当您触摸屏幕右侧右矩形下方时,右矩形向下移动。但是当两个玩家都在那边这样做时,会触发 ACTION_MOVE,在这种情况下不应该是这种情况...

我正在 android 开发一个相对简单的多人游戏,其中两个用户可以与屏幕进行交互。我以不同的方式实现了 onTouch,具体取决于屏幕的哪一侧被按下了。然后它会触发玩家 1 或玩家 2 的动作。

我的问题是,当两个玩家同时按下屏幕时,还会触发一个 ACTION_MOVE,而不仅仅是两个 ACTION_DOWN 事件。 ACTION_MOVE 有一些特定的实现,但只有当一个玩家自己导致它而不是两个一起时才应该调用它。

那么,有没有办法将屏幕分成两个区域,从而不会出现上述问题?

谢谢

你应该实现一个 LinearLayout,有两个 Buttons,每个 weight = 1 .

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@color/colorPrimary"
    android:text="Button1" />

<Button
    android:id="@+id/button2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="@color/colorAccent"
    android:text="Button2" />
</LinearLayout>

然后你可以处理来自每个按钮的触摸。