web-dev-qa-db-fra.com

Comment puis-je obtenir le centre x, y de ma vue dans Android?

J'attache une image dans ma mise en page. Ici, je veux obtenir les coordonnées de mon centre imageview. Je vais utiliser ces mêmes coordonnées pour définir mon imageview dans la mise en page suivante. S'il vous plaît, suggérez-moi comment obtenir les coordonnées du centre de mon imageview.

Merci d'avance

26
Raghu Rami Reddy

le centre de l'imageView sera

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

mais assurez-vous de l'appeler après la création de l'imageView

63
Mohsin Naeem

Vous pouvez utiliser getPivotX() et getPivotY(), il reste toujours au centre de la vue même en rotation.

6
aiueoH

Essaye ça :

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));

J'espère que cela vous aide.

Merci.

3
Pratik Sharma

Comme @aiueoH l’a mentionné, vous pouvez utiliser getPivotX() and getPivotY().

Essayez d’utiliser ceci pour trouver les coordonnées du centre:

int centreX = view.getPivotX()/2;
int centreY = view.getPivotY()/2;
2
NickitaX

si vous souhaitez aligner une vue au centre d'une autre vue, vous pouvez utiliser ceci - 

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

et puis évidemment en utilisant - 

child_view.setX(center_x);
0
Pb Studies