Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Android中正确翻译像素坐标到画布坐标?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在捕获@L_266_0@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中正确翻译像素坐标到画布坐标?所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。