К сожалению, просмотрев исходный код, я не смог найти простого способа добавления границ, кроме подхода добавления границ для каждой ячейки.В качестве ссылки я опубликую свое решение здесь.
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"
/>
Поскольку все строки удваиваютсяпо размеру, когда они присоединяются к соседним ячейкам, я сделал размер делителя 1px вместо 1dp, чтобы он не выглядел слишком большим на некоторых экранах.Кроме того, я сделал отображение сетки с отрицательными полями, чтобы скрыть линии с обеих сторон.Я надеюсь, что это помогает кому-то.