Android GridView绘制分隔线

我想知道在GridView中的项目之间绘制分隔线的最简单的方法(当前是textviews)。 我能想到的唯一方法就是围绕这些文本视图绘制边界,所以当它们结合起来时,它们看起来像连续的水平和垂直分隔符。

有一个setDivider()列表视图,但不是gridviews?

谢谢。

不幸的是,在查看源代码后,除了采用向每个单元格添加边框的方法之外,我看不到添加边框的简单方法。 作为参考,我会在这里发布我的解决scheme。

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" /> 

由于所有行join相邻单元格的大小都是两倍,因此我将分隔大小设置为1px,而不是1dp,因此在某些屏幕上显示的大小不会太大。 此外,我使网格视图具有负边缘来隐藏任何一方的线条。 我希望这可以帮助别人。

如果你只需要简单的线条作为边框,设置GridView的背景颜色和适当的填充和间距要简单得多:

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