论坛首页 移动开发技术论坛

GridView 网格布局 使用

浏览 30630 次
精华帖 (0) :: 良好帖 (1) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-15   最后修改:2010-01-15

GridView

 

[功能]

以前提及过GridView 说也是一种AdapterView 和ListView有点像 今天花了时间 用了一些 有点心得 和大家分享分享

 

 

[思路]

1. 既然和ListView像 那么应该还是通过 setAdapter() 来设置吧

2. 因为我想显示的是一些图片信息 必须用到ImageView 不是默认的Adapter用到的TextView 所以只能自己扩展了

 

 

[代码]

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" 
    android:numColumns="3"
    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);

 

 

 

所以最后效果图是这样的 网格布局

   发表时间:2010-02-09  
最近使用gridview,想在代码中控制y轴的滚动条位置,gryphone知不知怎么实现?
0 请登录后投票
   发表时间:2010-02-10  
稻-草 写道
最近使用gridview,想在代码中控制y轴的滚动条位置,gryphone知不知怎么实现?

不太懂你的意思 你要控制滚动条干嘛? 如果GridView包含的View 太多的话 滚动条会自动出现 否则 会隐藏的
0 请登录后投票
   发表时间:2010-02-10  
滚动条的出现和隐藏是一会事, 滚动条出现后 滚动条的位置是另一回事。

我是想让程序记住滚动条的位置,免得用户每次都要拖滚动条。
0 请登录后投票
   发表时间:2010-02-10  
稻-草 写道
滚动条的出现和隐藏是一会事, 滚动条出现后 滚动条的位置是另一回事。

我是想让程序记住滚动条的位置,免得用户每次都要拖滚动条。

你是想让程序记得上次选中的item
下次再打开 直接到目标 是吗?
如果是 那不如这样做 或许会简单一点
1. GridView.setSelection(int position) 每次新打开GridView 调用之
2. SharePerference 保存最后的item position

如果不是 就不知道了 因为几乎没人会关心这个吧!
0 请登录后投票
   发表时间:2010-04-11  

请问。显示GridView网格显示边框

就像一个DataGrid,有header

 

 

Username Old Sex
a 23 Boy
b 24 Gril

 

如何使用GridView实现,比较急?

0 请登录后投票
   发表时间:2010-04-11  
kusoft 写道
请问。显示GridView网格显示边框

就像一个DataGrid,有header

 

 




<table class="quote_title" style="width: 439px; height: 64px; border: #e7b917 1px solid;" border="1" width="439" frame="rows"><tbody>
<tr>
<td>Username</td>
<td>Old</td>
<td>Sex</td>
</tr>
<tr>
<td>a</td>
<td>23</td>
<td>Boy</td>
</tr>
<tr>
<td>b</td>
<td>24</td>
<td>Gril</td>
</tr>
</tbody></table>
 

如何使用GridView实现,比较急?

1.当然可以 GridView 只是一种AdapterVire
2. 何谓AdapterVire ,参考ListView ,通俗说法:适配器 能接受不固定数据 然后通过之显示
3. 如何实现: 先定义BaseAdapter 然后通过setAdapter()使用之
0 请登录后投票
   发表时间:2010-08-10  
请问一下,如果我想在gridview中的每个图片上实现onClick事件,还有不知道有没有onMouseOver事件。该怎样实现?或者用别的方法怎么实现这个功能呢?
请原谅我在这挖坟了
多谢!
0 请登录后投票
   发表时间:2010-08-12  
如果想拖动gridview里面的imageview交换位置怎样实现呢?
0 请登录后投票
   发表时间:2010-09-07   最后修改:2010-09-07
mGridView.setOnItemClickListener(new OnItemClickListener(){

  @Override
  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {}
}
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics