我有一张图片,我将它用作图片地图。如果图像是固定的,那么就没有问题,但我需要缩放并拖动这个图像,然后获取并使用图像点击位置的坐标。
我是否需要准确跟踪此图像移动的大小和已调整大小,或者我是否可以获取图像的0x0点(图像的左上角)。
还有其他办法吗
我应该在这个优秀的教程http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2/1747?tag=rbxccnbzd1
上添加我的图像处理功能答案 0 :(得分:2)
您可以使用应用于图像的相同变换矩阵来获取该点。您希望将屏幕坐标系之间的点转换为图像的坐标系,从而反转原始矩阵的效果。
具体来说,您希望使用用于转换图像的矩阵的逆将用户在屏幕上单击的x,y坐标转换为原始图像中的对应点在屏幕上。
假设矩阵的一些伪代码包含应用于图像的变换:
// pretend user clicked the screen at {20.0, 15.0}
float x = 20.0;
float y = 15.0;
float[] pts[2];
pts[0] = x;
pts[1] = y;
// get the inverse of the transformation matrix
// (a matrix that transforms back from destination to source)
Matrix inverse = new Matrix();
if(matrix.invert(inverse)) {
// apply the inverse transformation to the points
inverse.mapPoints(pts);
// now pts[0] is x relative to image left
// pts[1] is y relative to image top
}