¿Establecer el ancho y alto de ImageView mediante programación?
¿ Cómo puedo establecer ImageView
el ancho y alto de un mediante programación?
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();
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);
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.
He jugado a este con pixel
y 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.