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.
- Android: ¿Detectar cuando ScrollView ha terminado de desplazarse y rebotar de nuevo?
- Android WebView dentro de ScrollView solo desplaza scrollview
- Implementar zoom en scrollView android
- ¿Puedo desplazar un ScrollView de forma programática en Android?
- Android: EditText no rellenar ScrollView y RelativeLayout
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>
- MonoDroid: Error al llamar al constructor de la vista personalizada - TwoDScrollView
- ¿Cómo desplazarse al centro de HorizontalScrollView sólo cuando se inicia la actividad?
- Android - EditText multilínea forzada a llenar la altura
- Margen redundante al agregar ImageView a ScrollView en Android
- ¿Cómo hacer ScrollView con un RelativeLayout con varios diseños de niño llenar la pantalla?
- Cómo crear un número variable de vistas de texto en android
- Agregar una ScrollView simple a la Galería provoca una pérdida de memoria
- ViewPager dentro de un ScrollView no se desliza correclty
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>
- PerformException: Error al realizar 'solo clic'
- ¿Cómo obtener métricas de pantalla fuera de una actividad?