我有一个有两个imagesViews的活动。
这个到imagesViews有onClickListener,因为我需要知道哪个imageView被点击了。当我点击“选择图片”之后,我得到了点击哪个图片的结果。
我知道需要同样的结果,但我需要知道在哪里,我准确地点击了这个图像。我需要精确的坐标,点击这个imageView。我知道,在onTouch方法中,我有我需要的函数。
我可以在onTouch上改变onClick方法吗?或者在onClick中可以得到精确的坐标?
发布于 2012-03-29 10:04:03
您不需要使用onClick事件,因为您可以使用onTouch回调轻松捕获单击。单击是一个ACTION_DOWN操作、多个ACTION_MOVE操作和一个ACTION_UP操作的序列。可以使用event.getAction()方法获取这些信息。如果您得到一个ACTION_DOWN事件,然后是一个ACTION_UP事件--这意味着用户刚刚单击了您的View。您还可以度量在这些事件之间花费的时间,以确保这是一个简单的点击,而不是一个长的点击。当然,您可以使用event.getX()和event.getY()方法来获得确切的触点。希望这能有所帮助。
发布于 2012-03-29 10:02:57
您可以使用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;
}
});发布于 2012-03-29 10:03:43
onclick不能这样做。您只能从onTouchListener中获得它们。
https://stackoverflow.com/questions/9923090
复制相似问题