2010-09-24 4 views
21

utilizo Layout_width="fill_parent "y Layout_height="wrap content". Si una imagen es más grande que el ImageView, se downscaled perfectamente.¿android: scaleType = "fitCenter" solo funciona con los atributos Fix Layout_width y Layout_height?

Sin embargo, nunca tengo trabajo para mejorar la resolución de imágenes más pequeñas. Probé cualquier combinación de ScaleType y 'AdjustViewBounds' : siempre permanece en su propio tamaño en medio de la vista de imagen Aquí está el código ...

<LinearLayout 
     android:id="@+id/LinearLayout02" 
     android:layout_height="wrap_content" 
     android:background="@drawable/content_bg" 
     android:orientation="vertical" 
     android:padding="5dp" 
     android:layout_width="fill_parent" 
     android:layout_marginLeft="1px"> 
     <ImageView 
      android:layout_height="wrap_content" 
      android:src="@drawable/test" 
      android:id="@+id/ImageViewTest" 
      android:layout_width="fill_parent" 
      android:adjustViewBounds="true" 
      android:scaleType="center"></ImageView> 
</LinearLayout> 
+0

Trate de usar CENTER_INSIDE o FIT_XY. – bhups

+0

Intenté todas. Ninguno de ellos funcionó para mí. – OneWorld

+4

Encontré la única manera de ponerlo en funcionamiento, estaba configurando layout_hight y layout_width a valores fijos como 150dp x 200dp – OneWorld

Respuesta

1

Adición de android:scaleType="fitXY" a ur ImageView debe estirar la imagen si el tamaño es pequeño

+3

que no mantiene la relación de aspecto ... – OneWorld

+0

Sí, funciona bien si la imagen es más grande, pero si es más pequeña, solo se ajusta a la altura o al ancho. Es estúpido el modo en que Android maneja las imágenes – JPM

4
<LinearLayout 
    android:layout_height="wrap_content" 
.. 210

usa el tamaño original de la imagen en el interior.

Probar algo más grande o fill_parent

+0

Esta es solo una de mis respuestas doradas, no tienes idea de la cantidad de problemas que he tenido con imageview y su tipo de escala defectuosa (o incomprendida). Thamls a ton. – Warpzit

2

Uso android:scaleType="FIT_START" o android:scaleType="FIT_END", para calcular una escala que va a mantener la relación de aspecto src original, sino que también se asegurará de que se ajuste completamente en el interior src horario de verano (desde GoogleDev).

Más información:

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

+2

Es android: scaleType = "fitStart" o android: scaleType = "fitEnd", y estos son casi exactamente los mismos que android: scaleType = "fitCenter" de todos modos. La diferencia es cómo manejan el espacio vacío, alineándose para comenzar, finalizar o centrar. – OldSchool4664

9

acabo de encontrar una manera de hacer que funcione.

Esto funciona en 2.1 (AVD) & 4.1.2 (dispositivo)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="fitCenter" /> 

</LinearLayout> 
+1

con este método, si tiene un borde en el imageView, habrá espacios en blanco en los lados donde la imagen no se escale a – Olumide

Cuestiones relacionadas