我需要创建一个用户可以点按的窗口。我需要知道用户何时开始敲击,停止敲击,如果用户移动他的手指保持按下,以及他轻敲的确切坐标,以及他正在移动手指的位置,实时。 我无法理解哪种小部件最适合这种活动:有人可以给我一个提示吗? 感谢。
答案 0 :(得分:1)
附加View
的任何ViewGroup
(包括任何OnTouchListener
)都可以满足您的需求。在ACTION_DOWN
事件中,您可以记录点击发生的位置;在ACTION_MOVE
事件中,您可以获取当前指针位置的坐标。
只需将OnTouchListener
附加到您的视图并相应处理:
View view = findViewById(R.id.my_view);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
float xTap = event.getX();
float yTap = event.getY();
break;
case MotionEvent.ACTION_MOVE:
float xMovement = event.getX();
float yMovement = event.getY();
break;
}
}
}