Android: comment obtenir une hauteur et une largeur de vue personnalisée?

Duplication possible:
Comment dimensionner une vue Android en fonction des dimensions de ses parents

Comment puis-je utiliser getMeasuredWidth() et getMeasuredHeight ? Il renvoie toujours 0. quelle est la différence entre ceci et getHeight() et getWidth() ?

  • Codes d'erreur GCM
  • Changer le style de ProgressDialog
  • Ce qui provoque "java.io.IOException: le flux a été réinitialisé: ANNULER" avec okhttp et spdy?
  • Comment obtenir la liste de tous les raccourcis installés dans le lanceur d'écran d'accueil dans Android
  • Xamarin Android Finalizer n'est pas appelé lors de la sortie de l'activité pour aller à une autre activité
  • L'application commence toujours par l'activité racine à la place de la reprise de l'état de fond (Bogue connu)
  • Arrayliste en objet partagable
  • Discours au texte à partir du fichier son propre
  • Android SeekBarChangeListener et TouchListener Aucun événement
  • ImeOptions "actionNext" par programme - comment passer au champ suivant?
  • Le curseur Edittext est invisible dans Android 4.0
  • Google.Play web interface hl paramètre pour langue arabe
  • 7 Solutions collect form web for “Android: comment obtenir une hauteur et une largeur de vue personnalisée?”

    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 ses parents

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

    Je viens d'avoir une solution pour obtenir la taille 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.

    N'essayez pas de les intégrer à son constructeur. Essayez de les appeler dans la méthode onDraw() .

    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 mise en page XML.

    Dites si la valeur spécifiée pour la hauteur est 53dp dans XML, vous obtiendrez la valeur convertie en nombre entier comme 80.

    J'ai également été perdu autour de getMeasuredWidth() et getMeasuredHeight() getHeight() et getWidth() pendant longtemps ………. plus tard, j'ai trouvé la onSizeChanged() pour être vraiment utile.

    New Blog Post: comment obtenir des dimensions de largeur et de hauteur d'une vue personnalisée (Extended View) dans Android http://syedrakibalhasan.blogspot.com/2011/02/how-to-get-width-and-height-dimensions.html

    La différence entre getHeight() et getMeasuredHeight() est que la première méthode renverra la hauteur réelle de la View , la seconde renverra la hauteur de résumé des enfants de View . En plus de mots, getHeight() renvoie la hauteur de vue, getMeasuredHeight() renvoie la hauteur que cette vue doit afficher tous ses éléments

    Eh bien, la hauteur atteint la hauteur, et la largeur augmente. Mais vous appelez ces méthodes trop tôt. Si vous les appelez dans oncreate ou onresume, la vue n'est pas encore dessinée. Vous devez l'appeler après que la vue a été dessinée.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.