我正在尝试建立一个乒乓球比赛,球拍显示在屏幕的底部,砖块在顶部。我使用三个视图,一个用于球拍,一个用于球,另一个用于绘制两个视图(球和球)的主视图:
public void draw(Canvas canvas){
BallView.draw(canvas);
PaddleView.draw(canvas);
}
我想知道的是,如果我能确定哪个视图被完全触及,我会尝试在主活动中使用onTouchEvent
:
@Override
public boolean onTouchEvent(MotionEvent event){
Log.d("touched", "touched")
return true;
}
但问题是,无论我在屏幕上的哪个位置触摸,桨都在移动,我想,只有当我触摸桨时,他才会移动。 那么,如果可能的话,我怎么能这样做呢? 感谢。
答案 0 :(得分:2)
你可以通过另一种方式实现这一点,只需绘制两个相对布局蓝色和黄色,就像你的情况一样,并将它作为一个可点击的相对布局:从xml得到true并处理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;
}
}
答案 1 :(得分:0)