如何在Android中正确翻译像素坐标到画布坐标?

如何在Android中正确翻译像素坐标到画布坐标?,第1张

概述我正在捕获一个MotionEvent,在 Android SurfaceView中使用GestureListener进行长时间的点击.然后,我需要将MotionEvent的坐标转换为画布坐标,从而可以生成自定义地图坐标(而不是Google地图). 从我所看到的,我拿到MotionEvent e,e.getX()和e.getY()获得像素坐标.如何将这些坐标转换为SurfaceView的画布坐标? 我正在捕获一个MotionEvent,在 Android SurfaceVIEw中使用GestureListener进行长时间的点击.然后,我需要将MotionEvent的坐标转换为画布坐标,从而可以生成自定义地图坐标(而不是Google地图).

从我所看到的,我拿到MotionEvent e,e.getX()和e.getY()获得像素坐标.如何将这些坐标转换为SurfaceVIEw的画布坐标?

这是我的GestureListener,用于聆听长时间的点击:

/*** OverrIDes touch gestures not handled by the default touch Listener*/private class GestureListener extends GestureDetector.SimpleOnGestureListener {  @OverrIDe  public voID onLongPress(MotionEvent e) {     Point p = new Point();     p.x =  (int) e.getX();     p.y = (int) e.getY();     //Todo translate p to canvas coordinates  }}

提前致谢!

编辑:
这是否与屏幕尺寸/分辨率/深度以及画布的Rect对象有关?

解决方法 如果我明白了,你可以在表面视图中看到一个画布视图.如果是这样
尝试VIEW.getleft()| gettop()返回左边|视图相对于其父级的顶部位置.
float x= e.getX() - canvasVIEw.getleft();float y= e.getY() - canvasVIEw.gettop();
总结

以上是内存溢出为你收集整理的如何在Android中正确翻译像素坐标到画布坐标?全部内容,希望文章能够帮你解决如何在Android中正确翻译像素坐标到画布坐标?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1131122.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存