¿Establecer el ancho y alto de ImageView mediante programación?

Resuelto praveenb asked hace 54 años • 15 respuestas

¿ Cómo puedo establecer ImageViewel ancho y alto de un mediante programación?

praveenb avatar Jan 01 '70 08:01 praveenb
Aceptado

Puede que sea demasiado tarde, pero por el bien de otros que tienen el mismo problema, establezca la altura de ImageView:

imageView.getLayoutParams().height = 20;

Importante. Si está configurando la altura después de que el diseño ya haya sido "diseñado", asegúrese de llamar también:

imageView.requestLayout();
Hakem Zaied avatar Mar 10 '2011 09:03 Hakem Zaied

Si su vista de imagen es dinámica, la respuesta que contiene getLayout fallará con una excepción nula.

En ese caso la forma correcta es:

LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(100, 100);
iv.setLayoutParams(layoutParams);
InvulgoSoft avatar Mar 26 '2012 17:03 InvulgoSoft

Esta forma sencilla de realizar tu tarea:

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

y de otra manera, si desea indicar el tamaño de la pantalla en alto y ancho, utilice el siguiente código:

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

Espero que te sirva por completo.

duggu avatar Dec 17 '2012 13:12 duggu

He jugado a este con pixely dp.

private int dimensionInPixel = 200;

Cómo configurar por píxel :

view.getLayoutParams().height = dimensionInPixel;
view.getLayoutParams().width = dimensionInPixel;
view.requestLayout();

Cómo configurar por dp :

int dimensionInDp = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dimensionInPixel, getResources().getDisplayMetrics());
view.getLayoutParams().height = dimensionInDp;
view.getLayoutParams().width = dimensionInDp;
view.requestLayout();

Espero que esto te ayude.

Hiren Patel avatar May 24 '2016 09:05 Hiren Patel