Cambiar el tamaño de ImageView en tiempo de ejecución mediante un botón – Android
Estoy mostrando una imagen usando el contenedor de ImageView. La imagen necesita ser redimensionada cuando un usuario introduce un valor específico y hace clic en actualizar
Redimensionar es sólo para mostrar, el recurso original permanece como está. NO editar, guardar, etc
- Android: Cómo establecer el tamaño de un diseño de forma programática
- ¿Cómo detectar un cambio de tamaño de diseño?
- Android: calidad de las imágenes redimensionadas en tiempo de ejecución
- Android: muestra el contenido de la lista
- Cambiar el tamaño de un mapa de bits
Diseño xml
<ImageView android:background="@drawable/picture01" android:id="@+id/picture01holder" android:layout_below="@+id/TextView01" android:layout_height="wrap_content" android:layout_width="wrap_content" </ImageView>
Mainjava
final ImageView pic01 = (ImageView)findViewById(R.id.picture01);
Ahora lo que hago para asignar dinámicamente este pic01 un tamaño de mi elección. Sólo la función, lo puedo implementar dentro de un botón de mí mismo. Creo que tengo que usar algo como pic01.setLayoutParams pero no sé cómo usarlo.
Básicamente quiero sobrescribir layout_height = "wrap_content" y layout_width = "wrap_content" en .java
- ¿Puede WebView de Android redimensionar automáticamente imágenes enormes?
- Animar la vista de redimensionamiento en el diseño del material
- ¿Cómo puedo cambiar el tamaño de imageButton?
- ¿Cómo puedo cambiar el tamaño de una imagen antes de mostrarla en una vista con Android Universal Image Loader?
- Cómo cambiar el tamaño de AlertDialog en la pantalla del teclado
- Vistas dentro de un grupo de vistas personalizado que no se representan después de un cambio de tamaño
- Cambiar el tamaño de IMAGEVIEW en la escala de la imagen android
- ImageButtons Tamaño y ubicación no funcionan en Eclipse
Cambiar el tamaño de vista de imagen teniendo LayoutParams
final ImageView pic01 = (ImageView)findViewById(R.id.picture01); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(50, 50); pic01.setLayoutParams(layoutParams);
En primer lugar, debe establecer el tipo de escala de la imagen en CENTER_INSIDE o CENTER_CROP según sus preferencias. Debe hacer esto en su método onCreate ().
myImageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
Afterwords sólo tiene que cambiar el tamaño de la vista de la imagen en su diseño. Esto dependerá del tipo de diseño que esté usando. Un ejemplo para LinearLayout sería:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(100,200); myImageView.setLayoutParams(params);
O puede configurar el tamaño mínimo de los componentes:
myImageView.setMinimumWidth(200); myImageView.setMinimumHeight(200);
En ambos casos asegúrese de que el tamaño se puede lograr dentro del diseño. Si tiene varios componentes con pesos más pequeños, es posible que la vista de imagen no pueda ocupar el espacio que necesita.
RelativeLayout.LayoutParams myParams = new RelativeLayout.LayoutParams(yourWidthHere, yourHeightHere); pic01.setLayoutParams(myParams)