如何在imageview中获取可绘制图像的原点

时间:2013-09-24 02:06:49

标签: java android image

请参阅以下两个问题以供参考:

Get drawable displayed size after scaling

Trying to get the display size of an image in an ImageView

我现在可以获得缩放图像的大小,但我还想知道图像视图内部缩放图像的原点(0,0)。换句话说,图像#1内部的x,y位置对应于图像#2的0,0

http://image.noelshack.com/fichiers/2013/06/1360144144-sans-titre.png

2 个答案:

答案 0 :(得分:1)

如果你想知道drawView的(0,0)如何与imageView的(x,y)相对应,你可以使用imageView的转换矩阵来映射点

float[] drawableCoords = new float[] {0, 0};
imageView.getImageMatrix().mapPoints(drawableCoords);
float onViewX = drawableCoords[0];
float onViewY = drawableCoords[1];

您也可以反转过程(通过在其上创建倒置矩阵和maping点,从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,则某些情况下的变换坐标可以具有负坐标值。

答案 1 :(得分:0)

我假设图像#1是图像#2的父视图。

int x = image2.getLeft();
int y = image2.getTop();

将返回相对于image2的父视图image1的像素坐标的x,y。