我正在尝试在屏幕上拖动视图
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或圆圈的其他参考,对吗?
到目前为止我查看和尝试的所有内容都会运行我的代码,无论触摸在屏幕上的开始或停止位置如何。 (所以我可以移动球,我可以用手指和所有东西在屏幕上画线。但我不知道我是否碰到了红圈。)
请允许任何人用简单的语言向我说明这一点吗? (请原谅我在我的问题中使用同样简单的词语。我不再觉得我知道我在这里做了什么,而且我现在不再正确使用“听众”或“事件”这样的大词。
感谢。
答案 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);
}