【发布时间】:2012-02-16 10:57:11
【问题描述】:
我正在尝试构建一个乒乓球游戏,球拍显示在屏幕底部,砖块显示在顶部。我使用三个视图,一个用于桨,一个用于球,另一个是绘制两个视图(球和桨)的主视图:
public void draw(Canvas canvas){
BallView.draw(canvas);
PaddleView.draw(canvas);
}
我想知道的是,如果我能准确地识别出哪个视图被触摸,我尝试在主 Activity 中使用 onTouchEvent 来做到这一点:
@Override
public boolean onTouchEvent(MotionEvent event){
Log.d("touched", "touched")
return true;
}
但是,问题是,无论我触摸屏幕的哪个位置,桨都在移动,我希望只有当我触摸桨时,它才会移动。 那么,如果可能的话,我该怎么做? 谢谢。
【问题讨论】:
-
给两个视图一个不同的 id.... private OnTouchListener tListener1 = new OnTouchListener(){ public boolean onTouch(View v, MotionEvent event) 而不是简单地做 if(v.getId==R.id .blue) {} else if(v.getId==R.id.yellow){} 我希望这会奏效。
-
@pakshaheen 我可以从 java 文件中设置 ID 吗?因为我没有任何 XML 文件。
-
是的,你可以这样做,例如滚动视图视图=新滚动视图(此); view.setId(2);
-
@pakshaheen 谢谢,但问题是 OnTouchListener 从未被调用...
标签: android android-layout view