如何设置 GridView 的边框。
比如ListView的Divider和DividerHeight。
或者如何显示边框。
问问题
69764 次
4 回答
42
以下是 GridView 中的一些边框示例。
您可以看到我在 XML 中定义红色和蓝色边框的位置。
这是我的 main.xml 布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red" >
<GridView
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="10dp"
android:background="@color/blue"
android:columnWidth="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp"
/>
</RelativeLayout>
红色边框的粗细由 GridView 的layout_margin
属性控制,蓝色边框由horizontalSpacing
和控制verticalSpacing
。
为了制作黑色单元格背景,我使用了这个布局并将其保存为 list_item.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/black"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingLeft="6dip"
android:textAppearance="?android:attr/textAppearanceLarge" />
我的活动:
public class Example extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String[] array = new String[] {"one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"};
List<String> list = new ArrayList<String>(Arrays.asList(array));
GridView grid = (GridView) findViewById(R.id.gridview);
grid.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, list));
}
}
于 2012-08-21T02:36:02.243 回答
12
使用下面的 xml 文件作为网格项 xml 文件中的背景。
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/transparent" />
<corners
android:bottomRightRadius="12dp"
android:bottomLeftRadius="12dp"
android:topLeftRadius="12dp"
android:topRightRadius="12dp" />
<stroke
android:color="@android:color/white"
android:width="1dp" />
</shape>
于 2014-09-27T06:39:09.040 回答
5
在 res/drawable 文件夹中创建 grid_row_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" />
<corners
android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
<stroke
android:color="@color/material_grey_600"
android:width="1dp" />
</shape>
现在在您的网格布局 xml 中使用它,如下所示
android:background="@drawable/grid_row_border"
提供 padding [android:padding="5dp"] 和 margin [android:layout_margin="5dp"] 看起来更好。
于 2017-03-10T11:45:00.593 回答
0
我在图像行 xml 中围绕我的画廊图像添加这些视图:
<View
android:layout_width="@dimen/listGalleryItemWidthLarge"
android:layout_height="2dip"
android:layout_above="@+id/gallery_row_iv"
android:layout_centerHorizontal="true"
android:background="#FFFFFF" />
<View
android:layout_width="@dimen/listGalleryItemWidthLarge"
android:layout_height="2dip"
android:layout_below="@+id/gallery_row_iv"
android:layout_centerHorizontal="true"
android:background="#FFFFFF" />
<View
android:layout_width="2dip"
android:layout_height="@dimen/listGalleryItemHeightLarge"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/gallery_row_iv"
android:background="#FFFFFF" />
<View
android:layout_width="2dip"
android:layout_height="@dimen/listGalleryItemHeightLarge"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/gallery_row_iv"
android:background="#FFFFFF" />
- 请注意,我正在为我的 GridView 使用自定义布局和适配器
于 2013-06-10T19:56:15.400 回答