71 votes

Android: Comment obtenir la hauteur et la largeur d'une vue personnalisée?

Dupliquer possible:
Comment dimensionner une vue Android en fonction des dimensions de son parent

comment utiliser getMeasuredWidth() et getMeasuredHeight ? Il retourne toujours 0. Quelle est la différence entre ceci et getHeight() et getWidth() ?

74voto

Paresh Mayani Points 48123

Nous venons de trouver une solution pour obtenir la hauteur et la largeur d'une vue personnalisée:

 @Override
 protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld){
     super.onSizeChanged(xNew, yNew, xOld, yOld);

     viewWidth = xNew;
     viewHeight = yNew;
}
 

Cela fonctionne dans mon cas.

55voto

Rohith Nandakumar Points 4045

Désolé, cette question a déjà été posée. J'ai trouvé la réponse ici - Comment dimensionner une vue Android en fonction des dimensions de son parent

 @Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
    int parentHeight = MeasureSpec.getSize(heightMeasureSpec);
    this.setMeasuredDimension(parentWidth, parentHeight);
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
 

12voto

Mozz Points 141

N'essayez pas de les insérer dans son constructeur. Essayez de les appeler selon la méthode onDraw() .

12voto

Sam Points 284

Vous pouvez utiliser la méthode suivante pour obtenir la largeur et la hauteur de la vue. Par exemple,

 int height=yourView.getLayoutParams().height;
int width=yourView.getLayoutParams().width;
 

Cela donne la valeur convertie de la vue spécifiée dans la présentation XML.

Disons que si la valeur spécifiée pour height est 53dp en XML, vous obtiendrez la valeur convertie en entier sous la forme 80.

10voto

syedrakib Points 1197

J'ai également perdu environ getMeasuredWidth() et getMeasuredHeight() getHeight() et getWidth() pendant une longue période.......... plus tard, j'ai trouvé onSizeChanged() méthode pour être VRAIMENT utile.

New Blog Post: comment obtenir la largeur et la hauteur d'un customView (s'étend) dans Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html

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