Solución:
-
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 deandroid:background="https://foroayuda.es/..."
.src=
hace que escale la imagen manteniendo la relación de aspecto, perobackground=
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). -
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"