5 votes

comment obtenir la largeur en pixels d'une vue avec Android:layout_width="wrap_content" ?

J'ai une vue qui a layout_width="wrap_content". Si j'utilise view.getWidth() dans le code, il retourne 0. :-( Comment puis-je convertir la largeur de la vue "wrap_content" en pixels ?

5voto

Sephy Points 18893

Vous pouvez essayer getMeasuredWidth mais s'il renvoie 0, cela signifie que la vue n'est pas prête lorsque vous essayez de la mesurer. Essayez de faire l'appel plus tard. Par exemple, dans un fil de discussion que vous publiez lorsque onCreate est terminé.

3voto

Mohanad Kholy Points 116

Le résultat sera toujours 0 si la vue n'est pas visible [onCreate , onResume] .

Essayez d'appeler view.getWidth dans

 @Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    // call get width here

}

J'espère que cela vous aidera.

1voto

Gene Points 398
Button b = (Button) yourView.findViewById(R.id.your_button_id);
System.out.println("b.getMeasuredHeight() = "+b.getMeasuredHeight());
System.out.println("b.getMeasuredWidth() + "+ b.getMeasuredWidth());

0voto

G.Zxuan Points 11
  • appeler view.getWidth dans view.post()
  • appeler view.getWidth dans view.getViewTreeObserver().addGlobalLayoutListener()

N'oubliez pas de ne pas appeler view.getWidth() directement dans onCreate(), car le processus de mesure n'a pas encore été effectué, et vous ne pouvez obtenir que la valeur 0 renvoyée par getWidth().

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