Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7679064
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: Android平台

2015-11-23 15:37:49

GridView组件是以网格的形式显示所有的组件,例如:在制作相册的时候,所有的图片都会以相同大小显示在不同的格子之中,就可以依靠此组件完成

点击(此处)折叠或打开

  1. package org.lxh.demo;
  2. import java.lang.reflect.Field;
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import android.app.Activity;
  8. import android.app.AlertDialog;
  9. import android.app.Dialog;
  10. import android.content.DialogInterface;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.widget.AdapterView;
  14. import android.widget.AdapterView.OnItemClickListener;
  15. import android.widget.Gallery.LayoutParams;
  16. import android.widget.GridView;
  17. import android.widget.ImageView;
  18. import android.widget.LinearLayout;
  19. import android.widget.SimpleAdapter;
  20. public class MyGridViewDemo extends Activity {
  21.     private List<Map<String,Integer>> list = new ArrayList<Map<String,Integer>>() ;
  22.     private SimpleAdapter simpleAdapter = null;                 // 适配器
  23.     private GridView myGridView = null ;        // GridView组件
  24.     @Override
  25.     public void onCreate(Bundle savedInstanceState) {
  26.         super.onCreate(savedInstanceState);
  27.         super.setContentView(R.layout.main);            // 调用布局管理器
  28.         this.myGridView = (GridView) super.findViewById(R.id.myGridView) ;    // 取得组件
  29.         this.initAdapter() ;                // 初始化适配器
  30.         this.myGridView.setAdapter(this.simpleAdapter) ;        // 设置图片
  31.         this.myGridView.setOnItemClickListener(new OnItemClickListenerImpl()) ;
  32.     }
  33.     private class OnItemClickListenerImpl implements OnItemClickListener {
  34.         @SuppressWarnings("unchecked")
  35.         @Override
  36.         public void onItemClick(AdapterView<?> parent, View view, int position,
  37.                 long id) {            // 选项单击事件
  38.             ImageView showImg = new ImageView(MyGridViewDemo.this); // 定义图片组件
  39.             showImg.setScaleType(ImageView.ScaleType.CENTER);    // 居中显示
  40.             showImg.setLayoutParams(new LinearLayout
  41.                     .LayoutParams(LayoutParams.WRAP_CONTENT,
  42.                     LayoutParams.WRAP_CONTENT));    // 布局参数
  43.             Map<String, Integer> map = (Map<String, Integer>) MyGridViewDemo
  44.                 .this.simpleAdapter.getItem(position);     // 取出Map
  45.             showImg.setImageResource(map.get("img"));     // 设置显示图片
  46.             Dialog dialog = new AlertDialog.Builder(MyGridViewDemo.this)    // 创建Dialog
  47.                 .setIcon(R.drawable.pic_m)    // 设置显示图片
  48.                 .setTitle("查看图片")    // 设置标题
  49.                 .setView(showImg)    // 设置组件
  50.                 .setNegativeButton("关闭",    // 设置取消按钮
  51.                     new DialogInterface.OnClickListener() {
  52.                     public void onClick(DialogInterface dialog,int whichButton) {
  53.                             }}).create(); // 创建对话框
  54.             dialog.show();        // 显示对话框
  55.         }
  56.     }
  57.     public void initAdapter(){        // 初始化适配器
  58.         Field[] fields = R.drawable.class.getDeclaredFields();
  59.         for (int x = 0; x < fields.length; x++) {    
  60.             if (fields[x].getName().startsWith("png_")){     // 所有png_*命名的图片
  61.                 Map<String,Integer> map = new HashMap<String,Integer>() ;// 定义Map
  62.                 try {
  63.                     map.put("img", fields[x].getInt(R.drawable.class)) ;
  64.                 } catch (Exception e) {        // 设置图片资源
  65.                 }
  66.                 this.list.add(map) ;        // 保存Map
  67.             }
  68.         }
  69.         this.simpleAdapter = new SimpleAdapter(this,     // 实例化SimpleAdapter
  70.                 this.list,            // 要包装的数据集合
  71.                 R.layout.grid_layout,     // 要使用的显示模板
  72.                 new String[] { "img" },     // 定义要显示的Map的Key
  73.                 new int[] {R.id.img });    // 与模板中的组件匹配
  74.     }
  75. }
020711_网格视图:GridView.ppt
阅读(1115) | 评论(0) | 转发(0) |
0

上一篇:Gallery

下一篇:标签组件

给主人留下些什么吧!~~