Android ScrollView agrega un relleno adicional en la parte superior e inferior de la vista de imagen infantil

Tengo un problema con la prestación de un ScrollView. Esencialmente, el diseño es el encabezado fijo y pie de página con un scrollview en el centro. La idea es que cuando el teclado de la pantalla está activado para el contenido EditText la imagen se puede desplazar si la altura de la imagen es más larga que la vista del medio.

Al probar el diseño, he encontrado que en mi teléfono Android (Xperia X10 Android 1.6) hay un montón de acolchado añadido a la parte superior e inferior de la ImageView.

Apreciaría cualquier sugerencia en cuanto a cómo puedo evitar que esto suceda.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <!-- Header --> <RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF"> <TextView android:text="Share your photo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left"/> <Button android:id="@+id/btnStack" android:text="Stacks" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true"/> </RelativeLayout> <!-- End Header --> <!-- Body --> <ScrollView android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" android:padding="5px" android:background="#CCCCCC"> <ImageView android:id="@+id/imgPreview" android:layout_width="fill_parent" android:layout_height="wrap_content"/> </ScrollView> <!-- End Body --> <!-- Footer --> <RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#FFFFFF" android:layout_alignParentBottom="true"> <EditText android:id="@+id/caption" android:text="Type your caption" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/caption" android:background="#CCCCCC"> <Button android:id="@+id/btnUpload" android:text="Share" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> <Button android:id="@+id/btnCancel" android:text="Cancel" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1"/> </LinearLayout> </RelativeLayout> <!-- End Footer --> </LinearLayout> 

Después de algunos experimentos encontré que la adición de la siguiente sintaxis a mi código java resolvió el problema:

  imgPreview.setScaleType(ImageView.ScaleType.CENTER_INSIDE); imgPreview.setAdjustViewBounds(true); 

Simplemente agregando el siguiente atributo a su descripción de ImageView XML haga el trabajo:

 android:adjustViewBounds="true" 
 android:fillViewport="true" android:fadingEdge="none" 

Utilice estas propiedades en la vista de desplazamiento.

Puede establecer marginTop y bottom con un número negativo para el niño como este

 <HorizontalScrollView android:layout_width="200dp" android:layout_height="200dp" android:background="#ffffff" android:overScrollMode="never" android:scrollbars="none"> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal" android:layout_marginBottom="-10dp" android:layout_marginTop="-10dp"> </LinearLayout> </HorizontalScrollView> 
  • Animación de rotación de Android con ScrollView
  • ¿Es posible tener un ViewPager dentro de un ScrollView?
  • Android ScrollView layout (wrap_content, tamaño máximo)
  • Error con mi lista, ScrollView y botones
  • NestedScrollView (NSV) en CoordinatorLayout (CL): NSV no en la parte superior cuando se carga
  • ScrollView vs RecyclerView para niños diferentes en Android
  • ¿Cómo puedo ver que View se vuelve visible
  • distinguir un golpe y hacer clic en android (pasar el evento a otra vista si es un golpe)
  • Android, última línea de textview dentro de scrollview ligeramente corte
  • El fondo no aparece en android 4.2.2, pero aparece en 2.3
  • Cómo evitar que otra vista sea expulsada de la pantalla
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.