GridView的功能和用法

在我看来GridView的功能似乎跟ListView的功能相似,同样作为android上的布局控件,GridView被称为网格视图,因为用它来做网格状的布局是非常方便的,比如说九宫格,

先来看看下面的代码:

	GridView gridview ;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		//setContentView(R.layout.activity_main);
		View view = View.inflate(this, R.layout.activity_main, null);
		setContentView(view);
		
		gridview = (GridView) findViewById(R.id.GridView1);
		
		gridview.setAdapter(new MyAdapter(this));
		
	}

	
	class MyAdapter extends BaseAdapter{

		
		private Context context;
		
		private Integer [] imgs = {R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,
				R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher,
				R.drawable.ic_launcher,R.drawable.ic_launcher,R.drawable.ic_launcher};
		
		public MyAdapter(Context context) {
			this.context = context;
		}
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return imgs.length;
		}

		@Override
		public Object getItem(int arg0) {
			// TODO Auto-generated method stub
			return arg0;
		}

		@Override
		public long getItemId(int arg0) {
			// TODO Auto-generated method stub
			return arg0;
		}

		@Override
		public View getView(int arg0, View arg1, ViewGroup arg2) {
			ImageView imageView;
			
			if(arg1 == null){
				imageView = new ImageView(context);
				imageView.setLayoutParams(new GridView.LayoutParams(75,75));
				imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
				imageView.setPadding(8, 8, 8, 8);
			}
			else{
				imageView = (ImageView) arg1;
			}
			imageView.setImageResource(imgs[arg0]);
			return imageView;
		}
		
	}

有没有觉得GridView的使用跟ListView有点相似呢?

都是用适配器把要布局的内容放到控件中。


GridView的用法有很多种,上面介绍的只是最为简单的一种。


我们还可以向下面一样写代码:

private GridView gridview;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		List<Map<String,Object>> items = new ArrayList<Map<String,Object>>();
		
		for(int i = 0; i < 9;i++){
			Map<String, Object> item = new HashMap<String, Object>();
			item.put("image", R.drawable.ic_launcher);
			
			items.add(item);
		}
		
		SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.gridview, new String []{"image"},new int []{R.id.image});
		
		gridview = (GridView) findViewById(R.id.GridView1);
		
		gridview.setAdapter(adapter);
	}

这两种方法都是达到了同样的效果,但是你们有没有发现,第二种方法其实比第一种方法灵活得多呢。比如我稍微在适配器那里改一下代码:

SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.gridview, new String []{"image","text"},new int []{R.id.image,R.id.text});

然后在List也加上以下代码:

item.put("image", R.drawable.ic_launcher);
			item.put("text", "pic" + i);
			items.add(item);

我们将会看到图片下面会多了文字描述。



目录 DataGridView控件用法合集 1 1.当前的单元格属性取得、变更 4 2.DataGridView编辑属性 5 3.DataGridView最下面一列新追加行非表示 7 4.判断当前选中行是否为新追加的行 8 5. DataGridView删除行可否设定 8 6. DataGridView行列不表示和删除 10 7. DataGridView行列宽度高度设置为不能编辑 12 8. DataGridView行高列幅自动调整 15 9. DataGridView指定行列冻结 列冻结(当前列以及左侧做所有列) 16 10. DataGridView列顺序变更可否设定 17 11. DataGridView行复数选择 复数行选择不可 18 12. DataGridView选择的行、列、单元格取得 19 13. DataGridView指定单元格是否表示 21 14. DataGridView表头部单元格取得 22 17.DataGridView粘贴 25 18. DataGridView单元格上ToolTip表示设定(鼠标移动到相应单元格上时,弹出说明信息) 29 19. DataGridView中的ContextMenuStrip属性 31 20.指定DataGridView的滚动框位置 34 21. DataGridView手动追加列 34 22. DataGridView全体分界线样式设置 36 24. DataGridView新追加行的行高样式设置 39 25. DataGridView新追加行单元格默认值设置 40 26. DataGridView单元格数据错误标签表示 41 27. DataGridView单元格内输入值正确性判断 44 28. DataGridView单元格输入错误值事件的捕获 47 29. DataGridView行排序(点击列表头自动排序的设置) 49 30. DataGridView自动行排序(新追加值也会自动排序) 50 31. DataGridView自动行排序禁止情况下的排序 53 32. DataGridView指定列指定排序 60 33. DataGridView单元格样式设置 61 34. DataGridView文字表示位置的设定 69 35. DataGridView单元格内文字列换行 70 36. DataGridView单元格DBNull值表示的设定 71 37. DataGridView单元格样式格式化 71 38. DataGridView指定单元格颜色设定 74 39. DataGridView单元格文字字体设置 78 40. DataGridView根据单元格值设定单元格样式 82 41. DataGridView设置单元格背景颜色 84 42. DataGridView行样式描画 91 43. DataGridView显示行号 101 44. DataGridView焦点所在单元格焦点框不显示的设定 105 45. DataGridView列中显示选择框CheckBox 107 46. DataGridView中显示下拉框ComboBox 109 47. DataGridView单击打开下拉框 113 48. DataGridView中显示按钮 115 49. DataGridView中显示链接 117 50. DataGridView中显示图像 120 51. DataGridView编辑中单元格控件取得 123 52. DataGridView输入自动完成 125 53. DataGridView单元格编辑时键盘KEY事件取得 131 54. DataGridView下拉框(ComboBox)单元格编辑时事件取得 134 55. DataGridView下拉框(ComboBox)单元格允许文字输入设定 138 56. DataGridView根据值不同在另一列中显示相应图片 141 57. DataGridView中显示进度条(ProgressBar) 147 58. DataGridView中添加MaskedTextBox 176 59. DataGridView中Enter键按下焦点移至旁边的单元格 202 60. DataGridView行集合化(Group) 205
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值