请参阅其他两个问题以供参考:
我现在可以获得缩放图像的大小,但我还想知道图像视图内缩放图像的原点 (0,0)。换句话说,图像#1 内部的什么 x,y 位置对应于图像#2 的 0,0?
http://image.noelshack.com/fichiers/2013/06/1360144144-sans-titre.png
请参阅其他两个问题以供参考:
我现在可以获得缩放图像的大小,但我还想知道图像视图内缩放图像的原点 (0,0)。换句话说,图像#1 内部的什么 x,y 位置对应于图像#2 的 0,0?
http://image.noelshack.com/fichiers/2013/06/1360144144-sans-titre.png
如果您想知道 (0,0) 的可绘制核心如何对应于 imageView 的 (x,y),您可以使用 imageView 的转换矩阵来映射点,如下所示
float[] drawableCoords = new float[] {0, 0};
imageView.getImageMatrix().mapPoints(drawableCoords);
float onViewX = drawableCoords[0];
float onViewY = drawableCoords[1];
您还可以反转该过程(通过在其上创建倒置矩阵和映射点来从 imageView 坐标映射到可绘制坐标
float[] viewCoords= new float[] {0, 0};
Matrix invertedMatrix = new Matrix()
imageView.getImageMatrix().invert(invertedMatrix);
invertedMatrix.mapPoints(viewCoords);
float onDrawableX= viewCoords[0];
float onDrawableY= viewCoords[1];
请注意,如果drawable小于/大于imageview,则在某些情况下转换后的坐标可能具有负坐标值。
我假设 Image #1 是 Image #2 的父视图。
int x = image2.getLeft();
int y = image2.getTop();
将返回相对于 image2 的父视图 image1 的像素坐标的 x,y。