2011-05-03 15 views
29

im tratando de mostrar las imágenes en un GridView y obtener las columnas configuradas automáticamente, hasta ahora he tenido que configurar manualmente el número de columnas que no es lo que quiero hacer, ya que esto afectará la magnitud las imágenes están en pantallas de diferentes tamaños. He intentado configurarlo para auto_fit pero solo muestra 2 columnas en el medio de la pantalla. Esto es lo que estoy tratando de lograr: (Cada cuadrado rojo representa una imagen)GridView auto fit images

enter image description here

luego, cuando volví a modo horizontal quiero las columnas de ajuste automático de manera que todo es uniforme. Cualquier ayuda sería muy apreciada, gracias :)

Respuesta

70

Experimente con los atributos de GridView, específicamente android:numColumns="auto_fit" y android:stretchMode. Las siguientes obras 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" 
/> 
+4

brillante. Tenía auto_fit, pero me faltaba columnWidth. Después de que agregué eso, las cosas comenzaron a funcionar maravillosamente. –

+0

Tenía todo menos el parámetro columnWidth, que es obligatorio tener algo fuera de 2 columnas – njzk2

+2

Tengo el mismo XML exacto, pero aún así, ¡GridView muestra solo 2 columnas! –

13

estoy no estoy seguro de por qué alguien votó negativamente la respuesta sobre mí (así que lo voté de nuevo): tuve que resolver un problema similar programáticamente (con un GridView de niños ImageView). Algo de código 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 */ 

Saludos,

Piesia

+0

¿Por qué NO_STRETCH es mejor que STRETCH_COLUMN_WIDTH para el modo de estiramiento? –