Comment définissez-vousLayoutParams () pour un ImageView?

Je veux définir le LayoutParams pour un ImageView mais ne semble pas trouver la bonne façon de le faire.

Je ne peux trouver que de la documentation dans l’API pour les divers ViewGroups , mais pas une image. Pourtant, l’ ImageView semble avoir cette fonctionnalité.

Ce code ne fonctionne pas …

 myImageView.setLayoutParams(new ImageView.LayoutParams(30,30)); 

Comment fait-on ça?

Vous devez définir les LayoutParams du ViewGroup dans lequel se trouve ImageView. Par exemple, si votre ImageView se trouve dans un LinearLayout, vous créez un

 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30); yourImageView.setLayoutParams(layoutParams); 

En effet, c’est le parent de la vue qui doit connaître la taille à atsortingbuer à la vue.

Vieux fil mais j’avais le même problème maintenant. Si quelqu’un le rencontre, il trouvera probablement cette réponse:

 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(30, 30); yourImageView.setLayoutParams(layoutParams); 

Cela ne fonctionnera que si vous ajoutez ImageView en tant que sous-vue à un LinearLayout. Si vous l’ajoutez à un RelativeLayout, vous devrez appeler:

 RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(30, 30); yourImageView.setLayoutParams(layoutParams); 

Si vous modifiez la disposition d’un ImageView existant, vous devriez pouvoir obtenir simplement les LayoutParams actuels, modifier la largeur / hauteur et la rétablir:

 android.view.ViewGroup.LayoutParams layoutParams = myImageView.getLayoutParams(); layoutParams.width = 30; layoutParams.height = 30; myImageView.setLayoutParams(layoutParams); 

Je ne sais pas si c’est votre objective, mais si c’est le cas, c’est probablement la solution la plus simple.

Un ImageView obtient setLayoutParams à partir de View, qui utilise ViewGroup.LayoutParams. Si vous l’utilisez, il se bloquera dans la plupart des cas, vous devriez donc utiliser getLayoutParams () dans View.class. Cela héritera de la vue parent de ImageView et fonctionnera toujours. Vous pouvez le confirmer ici: ImageView étend la vue

En supposant que vous avez un ImageView défini comme ‘ image_view ‘ et la largeur / hauteur int définie comme ‘thumb_size’

La meilleure façon de faire cela :

 ViewGroup.LayoutParams iv_params_b = image_view.getLayoutParams(); iv_params_b.height = thumb_size; iv_params_b.width = thumb_size; image_view.setLayoutParams(iv_params_b);