Cómo crear un ImageView que llena la altura de los padres y muestra una imagen lo más grande posible?

Tengo un ImageView que se define de la siguiente manera:

<ImageView android:id="@+id/cover_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_below="@id/title" android:layout_above="@id/divider" android:adjustViewBounds="true" android:src="@drawable/image_placeholder" android:scaleType="fitStart"/> 

Ahora, después de descargar un nuevo mapa de bits cambio el dibujable. La imagen aparece ahora en la esquina superior izquierda de ImageView. ¿Hay una manera de hacer que la imagen llene toda la altura que sea posible y, a continuación, ajustar el ancho de la vista para habilitar la ampliación de la imagen sin cambiar la proporción ascendente?

La imagen llena todo el espacio en una pantalla estándar, pero en una resolución WVGA la imagen sólo ocupa la mitad de la altura real del ImageView.

Básicamente la respuesta aquí es que no hay un valor predefinido para lo que está tratando de lograr. La solución es crear una Matrix que se ajuste a sus necesidades y llamar a setImageMatrix(matrix) en su ImageView .

Si te entiendo correctamente, lo que necesitas usar es el centerCrop centerCrop. fitStart escala la imagen proporcionalmente, pero ni el ancho ni la altura excederán el tamaño de la vista, y la imagen tendrá, como dijiste, una gravedad top|left .

El uso de centerCrop escala la imagen proporcionalmente, pero hace que el borde más corto de la imagen coincida con el tamaño de la vista, y si hay datos adicionales en el lado largo que no encaja, simplemente se recorta. La gravedad es, por supuesto, el center . Lo siguiente funcionó para mí:

 <ImageView android:src="@drawable/image_placeholder" android:id="@+id/cover_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="centerCrop" /> 

Puede cambiar el tipo de escala a fitXY mediante una llamada a

 imageView.setScaleType(ScaleType.FIT_XY); 

Simplemente hazlo en xml como

 android:scaleType="fitXY" 
  • Java.util.ConcurrentModificationException in View.setVisibility
  • Aplicar una máscara a una sola vista de superposición sin enmascarar toda la actividad
  • Android: Estado compartido compartido de vista de niño de su vista principal en Jelly Bean
  • SendUserActionEvent () es null
  • Android: Agregar vista dinámicamente en un diseño anidado
  • Ciclo de vida de Android View
  • agregar vista (vista de texto) en AsyncTask
  • Cómo centrar un textview dentro de un linearlayout
  • Retener completamente WebView en fragmento tras rotación
  • ¿Rellenar ListFragments con una vista personalizada?
  • ¿Existe un reemplazo para el widget Galería con Reciclado de vistas?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.