Как узнать, какой вид затрагивается - PullRequest
0 голосов
/ 16 февраля 2012

Я пытаюсь построить игру в пинг-понг, чтобы весло показывалось внизу экрана, а кирпичи - вверху. Я использую три вида, один для весла, один для мяча, а другой - основной вид, который рисует два вида (шар и весло):

public void draw(Canvas canvas){
    BallView.draw(canvas);
    PaddleView.draw(canvas);
}

Что я хочу знать, так это то, что если я могу точно определить, к какому виду обращаются, я пытаюсь сделать это с помощью onTouchEvent в основном задании:

   @Override
    public boolean onTouchEvent(MotionEvent event){
        Log.d("touched", "touched")
        return true;
    }

Но проблема в том, что независимо от того, где я касаюсь экрана, весло движется, и я хочу, чтобы, только когда я коснулся весла, он двигался. Так, как я могу это сделать, если это возможно? Спасибо.

Ответы [ 2 ]

2 голосов
/ 16 февраля 2012

Вы можете достичь этого другим способом, например, просто нарисуйте две относительные раскладки, синие и желтые, как в вашем случае, и сделайте их относительную разметку как интерактивную: true из xml и обработайте onClick: "onClickHandler". надеюсь, это сработает для вас.

                <RelativeLayout
                    android:id="@+id/rl_click_blue"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentRight="true"
                    android:background="#ffffff"
                    android:clickable="true"
                    android:onClick="onClickHandler">
                </RelativeLayout> 

                <RelativeLayout
                    android:id="@+id/rl_click_yellow"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentRight="true"
                    android:background="#ffffff"
                    android:clickable="true"
                    android:onClick="onClickHandler">
                </RelativeLayout> 

               // Handle your functionality here.
               public void onClickHandler(View v)
               {
                   switch (v.getId()) {
                       case R.id.rl_click_blue:
                           break;

                       case R.id.rl_click_yellow:

                          break;
                   }
               }
0 голосов
/ 16 февраля 2012

Событие Android * OnTouch уже имеет параметр Тип представления, с помощью которого вы можете идентифицировать представление, вызвавшее событие. Вы можете найти пример здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...