欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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);

所以最后效果图是这样的 

Android应用开发中使用GridView网格布局的代码示例


巧妙地添加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.运行截图

Android应用开发中使用GridView网格布局的代码示例