Cambiar el tamaño de IMAGEVIEW en la escala de la imagen android
Tengo una imagen dentro de una vista de imagen en android.
Estoy escalando la imagen usando scaletype (MATRIX) a través de código similar a esto:
- Problemas de calidad al cambiar el tamaño de una imagen en tiempo de ejecución
- ¿Cómo escalar / cambiar el tamaño del texto para que se ajuste a un TextView?
- Utilidad de android nueve parche
- Resize Drawable en Android
- ¿Puede WebView de Android redimensionar automáticamente imágenes enormes?
mtrx.postScale(scale, scale); imageView.setImageMatrix(mtrx); imageView.setScaleType(ScaleType.MATRIX); imageView.invalidate();
Ahora, esto redimensiona correctamente la imagen contenida en el ImageView, lo cual es bueno, pero lo que necesito es reposicionar la imagen a la ubicación 0,0 dentro de la vista de la imagen y luego cambiar el tamaño de la imageView misma al tamaño de la imagen escalada.
Hasta ahora todas las ideas que he inventado para intentar reutilizar la misma imagen no parecen funcionar, o simplemente estoy haciendo algo malo.
¿Es mi única manera de lograr esto para destruir la imagen, cambiar el tamaño del mapa de bits, crear una nueva imagen que contiene el nuevo mapa de bits creado a escala y añadir la vista de nuevo el diseño?
Realmente me gustaría NO hacer eso .. Estoy golpeando contra el límite de 16 Meg heap como lo es con las cosas. ¿Cómo puedo decir a la matriz para mover la imagen a la posición 0,0 en la imageView (la imageView se crea inicialmente con scaletype centro, después de que ha escalado la imagen más pequeña? Y ¿cómo puedo entonces decir a la imageView, hey que ahora sólo Tan grande como la imagen escalada?
Gracias por adelantado.
- Android: Cómo establecer el tamaño de un diseño de forma programática
- Visualización de una imagen más grande que la pantalla del dispositivo
- Cómo cambiar el tamaño de una vista personalizada mediante programación?
- ¿Cómo puedo cambiar el tamaño de imageButton?
- Anchura máxima y altura para ImageView en Android
- ¿Cómo detectar un cambio de tamaño de diseño?
- Cambiar el tamaño de un mapa de bits
- Android: muestra el contenido de la lista
Ajustar la vista de la imagen a "Ajustar los límites de la vista" parece hacer el truco.
Esto es lo que los docs tienen que decir:
Defina esto como true si desea que ImageView ajuste sus límites para conservar la relación de aspecto de su dibujable.
Puede hacerlo usando android:adjustViewBounds="true"
o en código con imageView.setAdjustViewBounds(true)
.
Establezca "Ajustar límites de vista" true y, a continuación, establezca el tipo de escala a "fitXY" finalmente adjut layout_width y altura. Verá que la imagen cambia de tamaño.
- ¿Puedo actualizar una vista mientras la actividad está en pausa?
- Array de cadenas en SharedPreferences