Malheureusement, après avoir regardé le code source, je ne vois pas moyen facile d'ajouter des bordures autres que de prendre l'approche d'ajouter des bordures à chaque cellule. À titre de référence, je posterai ma solution ici.
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"
/>
Comme toutes les lignes doubles de taille qu'ils rejoignent leurs cellules voisines, je fait la taille du diviseur 1px au lieu de 1DP il n » t apparaissent trop grandes sur certains écrans. De plus, j'ai fait en sorte que la vue de la grille ait des marges négatives pour cacher les lignes de chaque côté. J'espère que ça aidera quelqu'un.
http://stackoverflow.com/a/12047760/ 375093 Cette réponse semble être plus facile et astucieuse que la réponse ci-dessous – Sundeep
@Sundeep: Si vous définissez la couleur d'arrière-plan d'un élément GridView, la couleur de l'élément ne change pas lorsqu'il est mis au point. L'utilisateur sélectionné surmonte ce problème. –
@Sundeep Il ralentira le processus de tirage. – twlkyao