Java 在imageview平移后计算新的点坐标

Java 在imageview平移后计算新的点坐标,java,android,android-imageview,scale,android-canvas,Java,Android,Android Imageview,Scale,Android Canvas,我需要帮助在imageview转换后计算新坐标 我正在开发一款android应用程序,可以在地图上绘制点 地图是从备份服务下载的 我需要绘制的点来自后端,它们的位置相对于贴图大小(8000w x 4450h) 应用程序(使用glide)在自定义图像视图中设置图像。当这种情况发生时,地图会缩小以适应屏幕 viewH=735 viewW=1080 然后我需要绘制位置图;但是,需要平移绘制的坐标以匹配新比例 下面是我现在计算它的方式…它得到了正确区域中的点…但它们不精确(在y轴上绘制到低位): new

我需要帮助在imageview转换后计算新坐标

我正在开发一款android应用程序,可以在地图上绘制点

地图是从备份服务下载的

我需要绘制的点来自后端,它们的位置相对于贴图大小(8000w x 4450h)

应用程序(使用glide)在自定义图像视图中设置图像。当这种情况发生时,地图会缩小以适应屏幕

viewH=735

viewW=1080

然后我需要绘制位置图;但是,需要平移绘制的坐标以匹配新比例

下面是我现在计算它的方式…它得到了正确区域中的点…但它们不精确(在y轴上绘制到低位):

newX=oldX/(原始视野/图像视图高度)

newY=oldY/(原始图像宽度/图像视图宽度)

有人能帮我得到更精确的x,y坐标的平移吗?我找不到与此相关的任何信息,但这可能是因为我不知道到底要搜索什么


谢谢

您可以对此使用最小-最大规格化。公式是

对于您的情况,公式简化为

NewX=(oldX*imageViewWidth)/originalMapWidth


NewY=(oldY*imageViewHeight)/originalmaphyeight

感谢您@Charan的回复,但这给了我相同的结果您的newX:(oldX*imageViewWidth)/originalMapWidth=494.7763我的newX:oldX/(originalmaphyeight/imageViewHeight)=494.7763原始坐标供参考:(3665.00981183.9218)然后,您应该检查服务提供的图像中使用的坐标系以及android视图的坐标系。对于android视图,(0,0)点应该在左上角。如果服务生成的映像也是如此,那么此转换应该可以工作。否则,您必须进行必要的转换,以将图像坐标系转换为与android view的坐标系匹配。