62 votes

Coordonnées incorrectes de getLocationOnScreen/getLocationInWindow

Un appel à getLocationOnScreen() ou getLocationInWindow() les deux me donnent un top/Y coordonnée qui est environ ~30px (hauteur de la barre d'état/notifications) trop loin vers le bas. Le site left/X Les coordonnées sont exactes.

Comme je l'ai indiqué plus haut, je pense que la différence est due à la barre d'état/notification... Je peux me tromper. Je pense que je peux résoudre ce problème si je peux déterminer la taille de la barre de notification, mais j'ai du mal à le faire.

Toute aide serait grandement appréciée.

0voto

 void setOffset(){
  int[] point1=new int[2];
  view1.getLocationInWindow(point1);

  int[] point2=new int[2];
  view2.getLocationInWindow(point2);

  int leftOffset=point2[0]-point1[0];
  int topOffset=point2[1]-point1[1];  
  // no need to call this function more than once
  // set the offset values in global variables 
  // remenber do't call it in OnCreate method
  // this helps to mesure all type of screen size
}

void setLocationOfView(){
  // now do your animation or any view to move
 int[] point =new int[2];
 sourceView.getLocationInWindow(point);
 view.setX(point[0]-leftOffset);
 view.setY(point[1]-topOffset);
 //wow you did it i am glad to help you and sorry for being late
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X