Android imageView矩阵自定义坐标

时间:2019-07-09 21:16:29

标签: android matrix imageview

我有一个可以拖动和缩放的图像视图。

这使用了与此处相同的广泛复制的代码 Zoom & Drag an Image in android 我可以触摸/拖动/缩放,图像会按预期调整大小。

我的问题是将新的图像矩阵转换为自定义坐标。

也许这张图片可以帮上忙。 https://imgur.com/a/cUlzAuM

黑色矩形是电话屏幕。 触摸并拖动/缩放后,图像被拉伸到比屏幕大到蓝色矩形的虚拟大小和位置。

在我的坐标系(基于内部坐标系绘制图形)中,屏幕的左上角是(xmin,ymin),右下角是(xmax,ymax)。考虑一个图形应用程序,您希望将其放大到更详细的图形的较小区域。因此,一旦拖动并缩放图像(这会使图像内容模糊),我就需要在新坐标处重新绘制内容。

一旦将图像调整为蓝色矩形,则应将我的坐标调整为较小的红色矩形。这就像放大一张脸部照片,然后放大到嘴中一样,整个照片变大了,但是缩放后的像素的坐标在原始图像区域内。

我尝试了各种各样的技巧数学来计算新的xmin,xmax,ymin,ymax坐标,但是结果不一致。有时缩放工作正常,其他坐标是错误的,与基于拖放缩放后的缩放图像相比,我基于xmin,ymin,xmax,ymax绘制的新图像位于完全错误的位置。

一旦用户完成了拖动和缩放,我就可以通过调用imageView.getMatrix获得imageView矩阵。我只需要知道如何使用该矩阵来修改我的坐标即可。

希望如此。有人可以帮忙吗?

0 个答案:

没有答案