android gridview border divider

Separadores de dibujo de Android GridView



border divider (2)

En caso de que desee simplemente líneas simples como bordes, mucho, mucho más simple es establecer un color de fondo para un GridView y el relleno y espaciado adecuados:

<GridView (...) android:background="@color/LightGold" android:listSelector="@android:color/transparent" android:horizontalSpacing="1dip" android:verticalSpacing="1dip" android:paddingLeft="1dip" android:paddingTop="1dip" />

Me gustaría saber la forma más sencilla de dibujar divisores entre elementos (actualmente vistas de texto) dentro de un GridView. La única forma en que se me ocurre es dibujar bordes alrededor de esas vistas de texto, de modo que cuando se combinan, se vean como divisores horizontales y verticales continuos.

Hay un setDivider () para listviews pero no para gridviews?

Gracias.


Lamentablemente, después de mirar el código fuente, no pude ver ninguna manera fácil de agregar bordes, además de tomar el enfoque de agregar bordes a cada celda. Como referencia, publicaré mi solución aquí.

list_item.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:background="@drawable/list_selector"> <!-- Cell contents --> </LinearLayout>

list_selector.xml

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@drawable/item_border_selected" /> <item android:state_pressed="true" android:drawable="@drawable/item_border_selected" /> <item android:drawable="@drawable/item_border" /> </selector>

item_border.xml

<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@android:color/transparent" /> <stroke android:width="1px" android:color="@color/list_divider" /> </shape>

item_border_selected.xml

<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/list_select" /> <stroke android:width="1px" android:color="@color/list_divider" /> </shape>

items_view.xml

<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="-1px" android:layout_marginRight="-1px" android:listSelector="@android:color/transparent" />

Como todas las líneas duplican su tamaño cuando se unen a las celdas vecinas, hice el divisor tamaño 1px en lugar de 1dp, por lo que no parece demasiado grande en algunas pantallas. Además, hice que la vista de cuadrícula tenga márgenes negativos para ocultar las líneas de cada lado. Espero que esto ayude a alguien.