I am attaching an imageview up on my frame layout. Here i want to get my imageview center co-ordinates. i will use that same co-ordinates to set my imageview in next layout. Please suggest me how to get the center co-ordinates of my imageview.
Thanks in advance
centre of the imageView will be
centreX=imageView.getX() + imageView.getWidth() / 2;
centreY=imageView.getY() + imageView.getHeight() / 2;
but make sure you call it after the imageView created
You can use getPivotX()
and getPivotY()
, it always keep in center of view even rotate view.
Try this :
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));
Hope this helps you.
Thanks.
As @aiueoH mentioned, you can use getPivotX() and getPivotY()
.
Try using this for finding coordinates of centre:
int centreX = view.getPivotX()/2;
int centreY = view.getPivotY()/2;
if you wish to align a view at the center of other view then you can use this -
float center_x = parent_view.getX() + parent_view.getWidth()/2 - child_view.getWidth()/2;
and then obviously using -
child_view.setX(center_x);