识别触发触摸事件的视图

时间:2010-09-07 08:39:24

标签: android view touch

我正在尝试在屏幕上拖动视图

FrameLayout main = (FrameLayout) findViewById(R.id.main_view);
final Ball bigball;
bigball = new Ball(this,50,50,25, 0xFFFF0000);
main.addView(bigball);

这会在我的屏幕上绘制一个红色圆圈。如果有人触摸红色圆圈而不是屏幕的其余部分,我是否需要如何以及在哪里实现我的触摸屏处理触发?

Ball.Java是一个单独的类:

public class Ball extends View 

我知道我可以检查用户触摸屏幕的坐标,然后将其与圆圈的位置进行比较,但必须有一种方法可以简单地检查ID或圆圈的其他参考,对吗?

到目前为止我查看和尝试的所有内容都会运行我的代码,无论触摸在屏幕上的开始或停止位置如何。 (所以我可以移动球,我可以用手指和所有东西在屏幕上画线。但我不知道我是否碰到了红圈。)

请允许任何人用简单的语言向我说明这一点吗? (请原谅我在我的问题中使用同样简单的词语。我不再觉得我知道我在这里做了什么,而且我现在不再正确使用“听众”或“事件”这样的大词。

感谢。

1 个答案:

答案 0 :(得分:0)

你可以在Ball类中覆盖/实现onTouchEvent,它是从View扩展的。

public class Ball extends View {
  public boolean onTouchEvent(MotionEvent ev) {
    if(ev.getAction == /*check against all the desired action*/ {
      //handle touch and return true
    return super.onTouchEvent(ev);
}