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.
You can use getPivotX() and getPivotY(), it always keep in center of view even rotate view.
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
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);