679 votes

Définir la largeur et la hauteur de ImageView par programme?

Comment puis-je définir une largeur et une hauteur ImageView par programme?

1182voto

Hakem Zaied Points 3766

Il est peut-être trop tard, mais pour d'autres qui ont le même problème, pour définir la hauteur de l'ImageView:

 image_view.getLayoutParams().height = 20;
 

J'espère que cela t'aides.

Important. Si vous définissez la hauteur après que la mise en page a déjà été mise en page, veillez à appeler image_view.requestLayout ()

244voto

InvulgoSoft Points 911

Si votre vue d'image est dynamique, la réponse contenant getLayout échouera avec une exception nulle.

Dans ce cas, la bonne façon est:

 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);
 

55voto

Golu Points 7213

Cette façon simple de faire votre tâche:

 setContentView(R.id.main);    
ImageView iv = (ImageView) findViewById(R.id.left);
int width = 60;
int height = 60;
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);
 

et d'une autre manière si vous voulez donner la taille de l'écran en hauteur et en largeur, utilisez le code ci-dessous:

 setContentView(R.id.main);    
Display display = getWindowManager().getDefaultDisplay();
ImageView iv = (LinearLayout) findViewById(R.id.left);
int width = display.getWidth(); // ((display.getWidth()*20)/100)
int height = display.getHeight();// ((display.getHeight()*30)/100)
LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
iv.setLayoutParams(parms);
 

j'espère utiliser plein à vous.

-40voto

Vladimir Ivanov Points 23731
 <ImageView
    android:layout_width="30dp"
    android:layout_height="30dp"
>
</ImageView>
 

définira la largeur et la hauteur à 30 pixels indépendants du périphérique.

Vous pouvez faire la même chose avec la méthode setLayoutParams() .

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