2017-07-01 21 views
3

起初爲了更好的想象力,這就是gui的樣子。 當您觸摸屏幕右側的右側矩形下方時,右側的矩形會向下移動。但是,當雙方球員做到這一點在那裏邊,有一個ACTION_MOVE觸發這不應該是在這種情況下的情況下...如何將屏幕分成兩個同樣大的空間,這些空間可以獨立地響應觸摸事件?

enter image description here

我開發一個相對容易的多人遊戲在Android中,其中兩個用戶可以與屏幕交互。我以不同的方式實現了onTouch,具體取決於屏幕哪一側被按下的事實。然後觸發玩家1或玩家2的動作。

我的問題是,當兩個玩家同時按下屏幕時,還有一個ACTION_MOVE也會觸發,而不僅僅是兩個ACTION_DOWN事件。 ACTION_MOVE有一些具體的實現,但只有當一個玩家自己造成而不是一起玩時,纔會調用它。

那麼,有沒有辦法將屏幕分成兩個區域,以便所描述的問題不會出現?

由於

+0

使用重量概念 –

+0

你是什麼意思?我只熟悉在xml文件中分配權重值。但我使用自定義視圖類來覆蓋onDraw(),那麼我可以在那裏使用重量概念嗎? – Jonas1902

回答

1

你應該implemet一個的LinearLayout,用兩個按鈕重量 = 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> 

然後,您可以處理每個按鈕的觸摸。

+0

是的,你說的當然是正確的!但我正在使用自定義視圖,並希望在畫布上繪製,並且不應該有任何按鈕。如果我在那裏使用按鈕,我無法處理我的程序所需的任何ACTION_MOVE。但ACTION_MOVE只能由一個用戶觸發,而不能由兩個單獨的用戶觸發,每個用戶觸發一個用戶。 – Jonas1902