Imágenes de ajuste automático de GridView
Im tratando de obtener las imágenes que se muestran en un GridView y obtener las columnas de forma automática, hasta ahora he tenido que establecer manualmente el número de columnas que no es lo que quiero hacer, ya que esto afectará a la gran tamaño de las imágenes en pantallas de diferentes tamaños . He probado el ajuste a auto_fit pero sólo muestra 2 columnas en el centro de la pantalla. Esto es lo que estoy tratando de lograr: (Cada cuadrado rojo representa una imagen)
- GridView y GridLayout en android
- Android obtener la posición del elemento seleccionado en gridview
- Cómo configurar un colspan en una celda de gridview de Android
- Cómo deshabilitar el desplazamiento de GridView en Android?
- Mantenga GridView al reanudar desde el modo de suspensión
Entonces cuando se gira a modo de paisaje quiero que las columnas de ajuste automático para que su todo incluso. Cualquier ayuda sería muy apreciada, gracias 🙂
- Cómo establecer diferentes columnas para filas en android gridview
- Cómo mostrar anuncios de banner de forma intermitente en gridview
- Gridview - Haga clic en la imagen para ver la imagen en Viewpager
- Eliminar elemento de GridView
- Android Eliminar imagen de la tarjeta SD con OnClick
- Agregar un encabezado a un GridView (Android)
- ¿Cómo puedo desactivar el desplazamiento de una vista de cuadrícula
- Android: vista de cuadrícula con elementos de cuadrícula que se pueden hacer clic y vistas anidadas (botones, casillas de verificación)
Experimente con los atributos GridView, específicamente android:numColumns="auto_fit"
y android:stretchMode
. Lo siguiente funciona para mí:
<GridView android:id="@+id/myGrid" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="10dp" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:numColumns="auto_fit" android:columnWidth="60dp" android:stretchMode="columnWidth" android:gravity="center" />
No estoy seguro de por qué alguien votó por la respuesta por encima de mí (por lo que votado de nuevo): Tuve que resolver un problema similar programatically (con un GridView de ImageView niños). Algunos códigos eliminados para mayor claridad:
int iDisplayWidth = getResources().getDisplayMetrics().widthPixels ; iImageWidth = iDisplayWidth / iNumberOfColumns ; gridview.setColumnWidth( iImageWidth ); gridview.setStretchMode( GridView.NO_STRETCH ) ; /* wrap_content in the xml file is supposed to do this, but it didn't seem to work */
Atentamente,
Piesia
Una solución mejor es medir el ancho de forma programática, por lo que no terminará con un ancho de columna codificada:
Android: ¿Cómo GridView auto_fit encuentra el número de columnas?