Android: reduce el espacio entre columnas en GridView
Vea la captura de pantalla adjunta en la que intento reducir el espacio entre las columnas de mi GridView.
Mi main.xml es como sigue:
- Cómo establecer el porcentaje de ancho para una actividad de diálogo con temas
- Android - utiliza la cámara sin vista de superficie o textureview
- Autocompletetextview como una pista
- ¿Cómo puedo mostrar la imagen en el centro de la pantalla?
- AutoCompleteTextView - cómo deshabilitar desplegable cuando tenemos una coincidencia exacta después de filtrar?
<?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" > <GridView android:id="@+id/gridview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchMode="columnWidth" android:gravity="center" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/logo"/> <TextView android:text="@string/game_score" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_gravity="center"/> </LinearLayout> </LinearLayout>
Estoy creando el ImageViews en mi código de un mapa de bits. Sin embargo, no estoy especificando ningún relleno o espaciado o de otra manera.
¿Cómo puedo reducir este espacio entre columnas? He intentado una variedad de ajustes en GridViews y ImageViews pero sin suerte
La imagen es :
Gracias
- ContentDescription = "@ null" una mala idea?
- La vista horizontal del reciclador no muestra nada
- Dividir la pantalla en la tableta android
- Cómo resolver No se puede conectar al editor para recuperar el error de texto
- Uso de ImageView como fondo para un diseño de Android
- Evite que las vistas de texto de Android lean los precios como números
- Implementar zoom en scrollView android
- Cómo configurar android: layout_weight y android: layout_width en el código?
Intenta arreglar el número de columnas necesarias en el archivo xml para la cuadrícula y establece stretchMode como columnwidth
android:numColumns="3" android:columnWidth="60dp" android:stretchMode="columnWidth"
O establecer el espaciado horizontal y vertical en xml para la cuadrícula
android:verticalSpacing="10dp" android:horizontalSpacing="10dp"
Eliminar el atributo Gravedad y utilizar el siguiente modo
android:stretchMode="NONE"
El espacio entre columnas se debe a que el elemento gridview no ocupa por completo el espacio de columna proporcionado por la vista de cuadrícula.
La solución para eliminar espacio entre columnas es medir el ancho y la altura de la pantalla del dispositivo y dividirlo por el número de columnas y filas. Esto proporcionará el ancho y la altura para cada elemento de vista de cuadrícula.
Usted tiene que asignar esta altura y el ancho a la vista de la imagen y también escala su mapa de bits para que coincida con la imagen.
Código:
DisplayMetrics displayMetrics=getResources().getDisplayMetrics(); screen_width=displayMetrics.widthPixels; //width of the device screen screen_height=displayMetrics.heightPixels; //height of device screen int view_width=screen_width/number of columns; //width for imageview int view_height=screen_height/number of rows; //height for imageview Imageview myImageView=(ImageView)findViewById(R.id.my_id); myImageView.getLayoutParams().width=view_width; myImageView.getLayoutParams().height=view_height; Bitmap myImage=Bitmap.createScaledBitmap(src, view_width, view_height, true);//scaling the image to match the size of image view
Hola tuve el mismo problema que resolví por mygridView.setStretchMode(GridView.NO_STRETCH);
Estaba teniendo problema similar de tener el espaciamiento horizontal leve entre las columnas en pocos dispositivos. (Yo no requería ningún espacio.) Yo estaba calculando adecuadamente el ancho de la cuadrícula dividiéndolo con el ancho total. Estaba recibiendo este problema sólo en dispositivos Lenovo.
Código siguiente estaba en actividad relacionada con la cuadrícula.
int myRequestedColumnWidth = myGridViewContentMain.getRequestedColumnWidth(); Point size = new Point(); getWindowManager().getDefaultDisplay().getSize( size ); int width = size.x; int height = size.y; int myGridColumns = width / myRequestedColumnWidth; if ( myGridColumns == 0 || myGridColumns == 1 ) myGridColumns = 2; myColumnWidth = ( width / myGridColumns ); myGridViewContentMain.setNumColumns(myGridColumns);
El siguiente código estaba en formato xml para la cuadrícula
<GridView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/gridViewContentMain" android:layout_centerHorizontal="true" android:numColumns="2" android:columnWidth="200dp" android:verticalSpacing="0dp" android:layout_below="@+id/relativeLayoutMainHeader" android:layout_above="@+id/relativeLayoutProgressBar" />
No pude resolver el problema después de cambiar los valores del modo de estiramiento.
Pero el valor siguiente en el diseño xml para GridView hizo el truco.
android:horizontalSpacing="0dp"
Espero que alguien como yo pueda encontrar esto útil.
Saludos.
Yo tuve el mismo problema. He minimizado el espacio de la columna haciendo esto
Para gridView
android:numColumns="2" android:columnWidth="90dp" android:verticalSpacing="0dp" android:horizontalSpacing="-30dp" android:stretchMode="columnWidth"
Para imageView
android:layout_width="115dp" android:layout_height="150dp" android:padding="1dp" android:layout_marginLeft="30dp" android:layout_marginRight="-15dp"
Puede reducir la columna de espacio b / w estableciendo el android: horizontalSpacing = "- 10dp" (algún número negativo)