39

我在我的框架布局上附加了一个图像视图。在这里,我想获取我的 imageview 中心坐标。我将使用相同的坐标在下一个布局中设置我的 imageview。请建议我如何获取图像视图的中心坐标。

提前致谢

4

5 回答 5

81

imageView 的中心将是

 centreX=imageView.getX() + imageView.getWidth()  / 2;
 centreY=imageView.getY() + imageView.getHeight() / 2;

但请确保在创建 imageView 后调用它

于 2012-12-07T07:42:37.940 回答
9

您可以使用getPivotX()and getPivotY(),它始终保持在视图中心,甚至旋转视图。

于 2016-06-20T06:19:21.657 回答
5

尝试这个 :

ImageView my_image = (ImageView) findViewById(R.id.my_imageView);  

Rect rectf = new Rect();
my_image.getLocalVisibleRect(rectf);

Log.d("WIDTH        :",String.valueOf(rectf.width()));
Log.d("HEIGHT       :",String.valueOf(rectf.height()));
Log.d("left         :",String.valueOf(rectf.left));
Log.d("right        :",String.valueOf(rectf.right));
Log.d("top          :",String.valueOf(rectf.top));
Log.d("bottom       :",String.valueOf(rectf.bottom));

希望这对您有所帮助。

谢谢。

于 2012-12-07T07:56:30.093 回答
4

正如@aiueoH 提到的,您可以使用getPivotX() and getPivotY().

尝试使用它来查找中心坐标:

int centreX = view.getPivotX()/2;
int centreY = view.getPivotY()/2;
于 2017-06-26T13:08:29.133 回答
1

如果您希望在其他视图的中心对齐视图,那么您可以使用它 -

float center_x = parent_view.getX() + parent_view.getWidth()/2 - child_view.getWidth()/2;

然后显然使用 -

child_view.setX(center_x);
于 2018-01-08T18:12:33.467 回答