OnClick和onTouch

时间:2012-03-29 09:58:36

标签: android onclick

我有一个活动,我有两个imagesViews。

这对imagesViews有onClickListener,因为我需要知道单击了哪个imageView。点击选择图片后,我得到了点击图片的结果。

我知道需要相同的结果,但我需要知道我在哪里点击这张图片。我需要点击此imageView的精确坐标。我知道在onTouch方法中我有我需要的功能。

我可以在onTouch上更改onClick方法吗?或者在onClick上可以得到精确的坐标?

3 个答案:

答案 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获取它们。

  

a question with this info