我有一个活动,我有两个imageViews。OnClick和onTouch
这对imagesViews有onClickListener,因为我需要知道哪个imageView被点击。当我点击选择图片后我得到了点击图片的结果。
我知道需要相同的结果,但我需要知道在哪里exacly我点击这张图片。我需要这个imageView被点击的精确坐标。我知道在onTouch方法中,我有我需要的功能。
我可以在onTouch上更改onClick方法吗?或者在onClick上可以获得精确的坐标吗?
我有一个活动,我有两个imageViews。OnClick和onTouch
这对imagesViews有onClickListener,因为我需要知道哪个imageView被点击。当我点击选择图片后我得到了点击图片的结果。
我知道需要相同的结果,但我需要知道在哪里exacly我点击这张图片。我需要这个imageView被点击的精确坐标。我知道在onTouch方法中,我有我需要的功能。
我可以在onTouch上更改onClick方法吗?或者在onClick上可以获得精确的坐标吗?
没有必要为你使用onClick
事件,因为你可以轻松地捕获使用onTouch
回调的点击。点击是一个一个ACTION_DOWN
动作,几个ACTION_MOVE
动作和一个ACTION_UP
动作的序列。这些可以使用event.getAction()
方法获取。如果您收到ACTION_DOWN
事件,然后收到ACTION_UP
事件 - 这意味着用户刚刚点击了您的View
。您还可以测量这些事件之间花费的时间,以确保它是一个简单的点击,而不是一个很长的点击。当然,您可以使用event.getX()
和event.getY()
方法来获得确切的接触点。希望这可以帮助。
你可以使用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;
}
});
的onclick不能做到这一点。您只能从onTouchListener获取它们。
您可以使用onTouch事件......是指该链接 [1]:http://stackoverflow.com/questions/9122679/difference-between-ontouch-and-onclick-android – 2012-03-29 10:02:59