Android开发入门之GridView(九宫图)用法

Android开发入门之GridView(九宫图)用法
GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟前文ListView的极其类似。
先来贴出本文代码运行的结果:

本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。
main.xml源代码如下,本身是个GirdView,用于装载Item:

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <GridView xmlns:android=”http://schemas.android.com/apk/res/android”
  3. android:id=”@+id/gridview”
  4. android:layout_width=”fill_parent”
  5. android:layout_height=”fill_parent”
  6. android:numColumns=”auto_fit”
  7. android:verticalSpacing=”10dp”
  8. android:horizontalSpacing=”10dp”
  9. android:columnWidth=”90dp”
  10. android:stretchMode=”columnWidth”
  11. android:gravity=”center”
  12. />
复制代码
介绍一下里面的某些属性:
android:numColumns=”auto_fit” ,GridView的列数设置为自动
android:columnWidth=”90dp”,每列的宽度,也就是Item的宽度
android:stretchMode=”columnWidth”,缩放与列宽大小同步
android:verticalSpacing=”10dp”,两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dp
android:horizontalSpacing=”10dp”,两列之间的边距。

接下来介绍 night_item.xml,这个XML跟前面ListView的ImageItem.xml很类似:
  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <RelativeLayout
  3. xmlns:android=”http://schemas.android.com/apk/res/android”
  4. android:layout_height=”wrap_content”
  5. android:paddingBottom=”4dip” android:layout_width=”fill_parent”>
  6. <ImageView
  7. android:layout_height=”wrap_content”
  8. android:id=”@+id/ItemImage”
  9. android:layout_width=”wrap_content”
  10. android:layout_centerHorizontal=”true”>
  11. </ImageView>
  12. <TextView
  13. android:layout_width=”wrap_content”
  14. android:layout_below=”@+id/ItemImage”
  15. android:layout_height=”wrap_content”
  16. android:text=”TextView01″
  17. android:layout_centerHorizontal=”true”
  18. android:id=”@+id/ItemText”>
  19. </TextView>
  20. </RelativeLayout>
复制代码
最后就是JAVA的源代码了,也跟前面的ListView的JAVA源代码很类似,不过多了“选中”的事件处理:
  1. public void onCreate(Bundle savedInstanceState) {
  2. super.onCreate(savedInstanceState);
  3. setContentView(R.layout.main);
  4. GridView gridview = (GridView) findViewById(R.id.gridview);
  5. //生成动态数组,并且转入数据
  6. ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
  7. for(int i=0;i<10;i++)
  8. {
  9. HashMap<String, Object> map = new HashMap<String, Object>();
  10. map.put(“ItemImage”, R.drawable.icon);//添加图像资源的ID
  11. map.put(“ItemText”, ”NO.”+String.valueOf(i));//按序号做ItemText
  12. lstImageItem.add(map);
  13. }
  14. //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应
  15. SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释
  16. lstImageItem,//数据来源
  17. R.layout.night_item,//night_item的XML实现
  18. //动态数组与ImageItem对应的子项
  19. new String[] {“ItemImage”,”ItemText”},
  20. //ImageItem的XML文件里面的一个ImageView,两个TextView ID
  21. new int[] {R.id.ItemImage,R.id.ItemText});
  22. //添加并且显示
  23. gridview.setAdapter(saImageItems);
  24. //添加消息处理
  25. gridview.setOnItemClickListener(new ItemClickListener());
  26. }
  27. //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件
  28. class  ItemClickListener implements OnItemClickListener
  29. {
  30. public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened
  31. View arg1,//The view within the AdapterView that was clicked
  32. int arg2,//The position of the view in the adapter
  33. long arg3//The row id of the item that was clicked
  34. ) {
  35. //在本例中arg2=arg3
  36. HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);
  37. //显示所选Item的ItemText
  38. setTitle((String)item.get(“ItemText”));
  39. }
  40. }
复制代码

目录 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、付费专栏及课程。

余额充值