centerinside - Proporcionalmente dimensionar una vista de imagen en Android
resize imageview android (3)
Supongamos que tienes esto
<ImageView
android:id="@+id/mainImageView"
android:layout_width="match_parent"
android:background="@drawable/mylogo_250px60px"
/>
Me gustaría definir la altura, por lo que se escala de acuerdo con el ancho. Entonces, si Android decide ampliar el logotipo para que se muestre en ancho, la altura debería aumentar también.
¿También es posible definir algo, por lo que cuando el teléfono se inclina de vertical a horizontal, el logotipo se escalará correctamente?
(Básicamente, el logotipo está encima de una lista de la actividad principal)
También he intentado usar esto, pero no tuve suerte (la altura parece muy baja en comparación con el ancho. La imagen no se redimensiona / escala en altura)
<ImageView
android:id="@+id/mainImageView"
android:layout_width="match_parent"
android:background="@drawable/mylogo_250px60px"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:adjustViewBounds="true"
/>
Si lo diseño en Eclipse / ADT, el logo de la herramienta GUI obtiene 76dp y se ve bien en mis dos teléfonos de prueba. Sin embargo, creo que debería ser posible escalar la imagen de manera propietaria.
"altura fija" tiene un ancho correcto a ancho (vista vertical, no cuando el teléfono está inclinado)
La "altura automática" parece incorrecta en relación con el ancho:
Cambie su código de vista de la imagen como se muestra a continuación
<ImageView
android:id="@+id/mainImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/mylogo_250px60px"
android:scaleType="fitEnd"
android:adjustViewBounds="true"
/>
Prueba esto:
<ImageView
android:id="@+id/mainImageView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/mylogo_250px60px"
android:scaleType="fitEnd"
android:adjustViewBounds="true"
/>
espero que sea su ayuda
Esto funciona bien:
<ImageView
android:id="@+id/mainImageView"
android:layout_width="wrap_content"
android:background="@drawable/mylogo_250px60px"
android:layout_height="wrap_content"
/>
El único problema: el dibujable debe ser al menos tan ancho como su elemento primario.
El renderizado no permitirá que ImageView sea más ancho que su elemento primario:
- Por lo tanto, se ajustará exactamente en ancho
- Y se mantendrá proporcional (debido al wrap_content)
Normalmente calculo para un teléfono con una resolución de 1080x1092 (fullHD).