gridview实现分割线--定义Selector来实现
2015-01-06 10:51
399 查看
Unfortunately, after looking at the source code, I could not see any easy way to add borders other than taking the approach of adding borders to the each cell. As a reference, I will post my solution here.
list_item.xml
list_selector.xml
item_border.xml
item_border_selected.xml
items_view.xml
Since all lines double in size as they join their neighboring cells, I made the divider size 1px instead of 1dp so it doesn't appear too large on some screens. Also, I made the grid view have negative margins to hide the lines on either side. I hope this
helps someone.
In case you want just simple lines as borders, much, much simpler is setting a background color for a
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" />
Since all lines double in size as they join their neighboring cells, I made the divider size 1px instead of 1dp so it doesn't appear too large on some screens. Also, I made the grid view have negative margins to hide the lines on either side. I hope this
helps someone.
In case you want just simple lines as borders, much, much simpler is setting a background color for a
GridViewand proper padding & spacing:
<GridView (...) android:background="@color/LightGold" android:listSelector="@android:color/transparent" android:horizontalSpacing="1dip" android:verticalSpacing="1dip" android:paddingLeft="1dip" android:paddingTop="1dip" />
相关文章推荐
- GridView分页的实现,自己定义的分页样式功能
- tableLayout 实现类似gridview的效果 带分割线
- 模仿支付宝GridView 分割线实现
- Android UI控件应用分享:如何实现“带分割线并且Item为正方形”的GridView
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- Gridview数据显示实现按日期排序分割线
- Android控件GridView实现分割线
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- Android中控件GridView实现设置行列分割线的方法示例
- GridView实现分割线
- Android 控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- GridView实现分割线
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- GridView实现类似listview中divider分割线
- Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现
- 自定义GridView实现分割线解析