imageview转换后计算新的点坐标

时间:2018-12-20 01:24:11

标签: java android android-imageview scale android-canvas

在imageview翻译后,我需要计算新坐标的帮助。

我正在使用一个可在地图上绘制点的android应用。

该地图是从支持的服务下载的。

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

该应用程序(使用滑动)可在自定义imageview中设置图像。发生这种情况时,地图将按比例缩小以适合屏幕。

viewH = 735。

viewW = 1080。

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

这是我现在的计算方式...将点取到正确的区域...但是它们不精确(在y轴上绘制为低点):

newX = oldX /(originalMapHeight / imageviewHeight)。

newY = oldY /(originalMapWidth / imageviewWidth)。

有人可以帮助我获得x,y坐标的更准确转换吗?我对此一无所获,但这可能是由于我不知道确切搜索什么。

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以为此使用最小-最大规范化。公式是 enter image description here

对于您来说,公式简化为

NewX =(oldX * imageViewWidth)/ originalMapWidth

NewY =(oldY * imageViewHeight)/ originalMapHeight