首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OnClick和onTouch

OnClick和onTouch
EN

Stack Overflow用户
提问于 2012-03-29 09:58:36
回答 3查看 2.3K关注 0票数 0

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

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

我知道需要同样的结果,但我需要知道在哪里,我准确地点击了这个图像。我需要精确的坐标,点击这个imageView。我知道,在onTouch方法中,我有我需要的函数。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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()方法来获得确切的触点。希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2012-03-29 10:02:57

您可以使用onTouch()方法获取触摸坐标

代码语言:javascript
复制
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;
    }
});
票数 3
EN

Stack Overflow用户

发布于 2012-03-29 10:03:43

onclick不能这样做。您只能从onTouchListener中获得它们。

a question with this info

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9923090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档