Saltar al contenido

Cómo escalar una imagen en ImageView para mantener la relación de aspecto

Solución:

  1. Sí, de forma predeterminada, Android reducirá su imagen para que se ajuste a ImageView, manteniendo la relación de aspecto. Sin embargo, asegúrese de que está configurando la imagen en ImageView usando android:src="https://foroayuda.es/..." en vez de android:background="https://foroayuda.es/...". src= hace que escale la imagen manteniendo la relación de aspecto, pero background= lo hace escalar y distorsionar la imagen para que se ajuste exactamente al tamaño de ImageView. (Sin embargo, puede usar un fondo y una fuente al mismo tiempo, lo que puede ser útil para cosas como mostrar un marco alrededor de la imagen principal, usando solo un ImageView).

  2. También deberías ver android:adjustViewBounds para hacer que ImageView cambie de tamaño para adaptarse a la imagen redimensionada. Por ejemplo, si tiene una imagen rectangular en lo que normalmente sería un ImageView cuadrado, adjustViewBounds = true hará que cambie el tamaño de ImageView para que también sea rectangular. Esto luego afecta cómo se distribuyen otras vistas alrededor de ImageView.

    Luego, como escribió Samuh, puede cambiar la forma en que escala las imágenes por defecto usando el android:scaleType parámetro. Por cierto, ¡la forma más fácil de descubrir cómo funciona esto hubiera sido simplemente experimentar un poco usted mismo! Solo recuerde mirar los diseños en el propio emulador (o en un teléfono real) ya que la vista previa en Eclipse generalmente es incorrecta.

Ver android:adjustViewBounds.

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

Para cualquier otra persona que tenga este problema en particular. Tienes un ImageView que quieres tener un ancho de fill_parent y una altura escalada proporcionalmente:

Agregue estos dos atributos a su ImageView:

android:adjustViewBounds="true"
android:scaleType="centerCrop"

Y establezca el ImageView ancho a fill_parent y altura a wrap_content.

Además, si no desea que se recorte su imagen, intente esto:

 android:adjustViewBounds="true"
 android:layout_centerInParent="true"
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *