2011-07-11 19 views
7

Tengo una imagen dentro de una vista de la imagen en Android.Cambio de tamaño de IMAGEVIEW en la escala de la imagen de Android

estoy escalando la imagen utilizando ScaleType (matriz) a través de un código similar a este:

     mtrx.postScale(scale, scale); 
       imageView.setImageMatrix(mtrx); 
      imageView.setScaleType(ScaleType.MATRIX); 
      imageView.invalidate(); 

Ahora bien, esto redimensionar correctamente la imagen contenida en el ImageView, lo cual es bueno, pero lo que necesito es vuelva a colocar la imagen en la ubicación 0,0 dentro de la vista de la imagen y luego cambie el tamaño de la imagenView al tamaño de la imagen escalada.

Hasta ahora, todas las ideas que he ideado para intentar reutilizar el mismo imageView no parecen funcionar, o simplemente estoy haciendo algo mal.

¿Mi única forma de lograr esto es destruir la vista de la imagen, cambiar el tamaño del mapa de bits, crear una nueva vista de la imagen que contenga el nuevo mapa de bits creado a escala y agregar la vista al diseño?

Realmente me gustaría no hacer eso ... Estoy chocando contra el límite del montón de 16 Megas como lo está con las cosas. ¿Cómo le digo a la matriz que mueva la imagen a la posición 0,0 en el imageView (el imageView se creó inicialmente con el centro del tipo de escala, después de que ha escalado la imagen más pequeña? ¿Y cómo le digo a la imagen View, hey, usted está ahora solo ?. tan grande como la imagen escalada

Gracias de antemano

Respuesta

8

Configuración de la vista de la imagen de "Ajuste Ver límites" parece hacer el truco

Esto es lo que los doctores tienen que decir:.

Establezca esto en verdadero si desea que ImageView ajuste sus límites a preservar la relación de aspecto de su drawable.

Puede hacerlo usando android:adjustViewBounds="true" o en el código con imageView.setAdjustViewBounds(true).

+1

Pero no funciona con scaleType fitStart. Al menos en este caso: después de reducir la escala, hay un espacio vertical vacío en la parte inferior. Este espacio no se ajusta cuando configuro adjustViewBounds = "true" – Ixx

1

Establezca "Ajustar límites de vista" verdadero, y luego establezca el tipo de escala en "ajusteXY" finalmente ajuste el ancho del diseño y la altura. Verás que la imagen cambia de tamaño.

Cuestiones relacionadas