我有一个活动,我有两个imagesViews。
这对imagesViews有onClickListener,因为我需要知道单击了哪个imageView。点击选择图片后,我得到了点击图片的结果。
我知道需要相同的结果,但我需要知道我在哪里点击这张图片。我需要点击此imageView的精确坐标。我知道在onTouch方法中我有我需要的功能。
我可以在onTouch上更改onClick方法吗?或者在onClick上可以得到精确的坐标?
答案 0 :(得分:4)
您无需使用onClick
事件,因为您可以使用onTouch
回调轻松捕获点击。点击是一个ACTION_DOWN
操作,多个ACTION_MOVE
操作和一个ACTION_UP
操作的序列。这些可以使用event.getAction()
方法获取。如果您收到ACTION_DOWN
个活动,然后收到ACTION_UP
个活动,则表示该用户刚刚点击了您的View
。您还可以测量这些事件之间所花费的时间,以确保它是一个简单的点击,而不是一个长点击。当然,您可以使用event.getX()
和event.getY()
方法获取确切的触摸点。希望这会有所帮助。
答案 1 :(得分:3)
您可以使用onTouch()方法获取触摸坐标
touchView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("Touch coordinates : " +
String.valueOf(event.getX()) + "x" + String.valueOf(event.getY()));
return true;
}
});
答案 2 :(得分:0)
onclick无法做到这一点。您只能从onTouchListener获取它们。