Android应用开发中使用GridView网格布局的代码示例
程序员文章站
2024-03-04 11:56:35
基本布局演示
1. 定义包含gridview 的 main.xmk
基本布局演示
1. 定义包含gridview 的 main.xmk
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <gridview android:id="@+id/gride" android:layout_width="fill_parent" android:layout_height="wrap_content" <strong> android:numcolumns="3"</strong> android:verticalspacing="5dip" /> </linearlayout>
这行应该注意一下:
android:numcolumns="3"
用来设定gridview每行显示的view数目 如果没有这行 会默认每行显示一个view 和listview 的一样
2. 自定义 class imagelist extends baseadapter 其中主要是:
view getview(int position, view convertview, viewgroup parent)
用于显示目标imageview
public class imagelist extends baseadapter { activity activity; //construct public imagelist(activity a ) { activity = a; } @override public int getcount() { // todo auto-generated method stub return image.length; } @override public object getitem(int position) { // todo auto-generated method stub return image[position]; } @override public long getitemid(int position) { // todo auto-generated method stub return position; } @override public view getview(int position, view convertview, viewgroup parent) { // todo auto-generated method stub imageview iv = new imageview(activity); iv.setimageresource(image[position]); return iv; } }
3. 给gridview指定adapter
gridview gv = (gridview) findviewbyid(r.id.gride); imagelist adapter = new imagelist(this); gv.setadapter(adapter);
所以最后效果图是这样的
巧妙地添加gridview的 网格线
listview 中设置分隔线的加如下参数即可:
android:divider="@color/gray" android:dividerheight="1dp"
gridview网格布局,默认情况下是没有网格线的
查找网上资料,找到了一种为gridview添加网格线的小技巧
实际上,该网格线是通过设置gridview各子项的间隔,并分别设置gridview背景色与子项背景色实现的。
实现方法:
(1)设置gridview背景色,设置水平间方向间隔属性值android:horizontalspacing和竖直方向间隔属性值
android:verticalspacing
(2)设置gridview子项背景色
示例代码:
1.main.xml
<gridview android:id="@+id/gv_words" android:visibility="gone" android:background="@color/gray" android:columnwidth="60dp" android:numcolumns="5" android:listselector="@null" android:verticalspacing="1.0px" android:horizontalspacing="1.0px" android:soundeffectsenabled="true" android:smoothscrollbar="true" android:stretchmode="columnwidth" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@+id/llayout2" android:layout_below="@+id/llayout1"/>
2.grivviewitem布局
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" > <relativelayout android:layout_width="50dp" android:layout_height="50dp" android:layout_margin="5dp"> <textview android:id="@+id/gv_bushou_textview1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/itemimage" android:layout_margin="1dp" android:layout_alignparenttop="true" android:layout_alignparentleft="true" android:layout_above="@+id/gv_bushou_textview2" android:layout_toleftof="@+id/gv_bushou_textview2" android:textsize="25dp" android:textcolor="@color/blue" android:text="难" > </textview> <textview android:id="@+id/gv_bushou_textview2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/itemimage" android:layout_alignparentbottom="true" android:layout_alignparentright="true" android:textcolor="@color/gray" android:textsize="10dp" android:text="1笔" > </textview> </relativelayout> </linearlayout>
3.运行截图
上一篇: Java序列化与反序列化的实例分析讲解