GridView组件是以网格的形式显示所有的组件,例如:在制作相册的时候,所有的图片都会以相同大小显示在不同的格子之中,就可以依靠此组件完成
-
package org.lxh.demo;
-
import java.lang.reflect.Field;
-
import java.util.ArrayList;
-
import java.util.HashMap;
-
import java.util.List;
-
import java.util.Map;
-
import android.app.Activity;
-
import android.app.AlertDialog;
-
import android.app.Dialog;
-
import android.content.DialogInterface;
-
import android.os.Bundle;
-
import android.view.View;
-
import android.widget.AdapterView;
-
import android.widget.AdapterView.OnItemClickListener;
-
import android.widget.Gallery.LayoutParams;
-
import android.widget.GridView;
-
import android.widget.ImageView;
-
import android.widget.LinearLayout;
-
import android.widget.SimpleAdapter;
-
public class MyGridViewDemo extends Activity {
-
private List<Map<String,Integer>> list = new ArrayList<Map<String,Integer>>() ;
-
private SimpleAdapter simpleAdapter = null; // 适配器
-
private GridView myGridView = null ; // GridView组件
-
@Override
-
public void onCreate(Bundle savedInstanceState) {
-
super.onCreate(savedInstanceState);
-
super.setContentView(R.layout.main); // 调用布局管理器
-
this.myGridView = (GridView) super.findViewById(R.id.myGridView) ; // 取得组件
-
this.initAdapter() ; // 初始化适配器
-
this.myGridView.setAdapter(this.simpleAdapter) ; // 设置图片
-
this.myGridView.setOnItemClickListener(new OnItemClickListenerImpl()) ;
-
}
-
private class OnItemClickListenerImpl implements OnItemClickListener {
-
@SuppressWarnings("unchecked")
-
@Override
-
public void onItemClick(AdapterView<?> parent, View view, int position,
-
long id) { // 选项单击事件
-
ImageView showImg = new ImageView(MyGridViewDemo.this); // 定义图片组件
-
showImg.setScaleType(ImageView.ScaleType.CENTER); // 居中显示
-
showImg.setLayoutParams(new LinearLayout
-
.LayoutParams(LayoutParams.WRAP_CONTENT,
-
LayoutParams.WRAP_CONTENT)); // 布局参数
-
Map<String, Integer> map = (Map<String, Integer>) MyGridViewDemo
-
.this.simpleAdapter.getItem(position); // 取出Map
-
showImg.setImageResource(map.get("img")); // 设置显示图片
-
Dialog dialog = new AlertDialog.Builder(MyGridViewDemo.this) // 创建Dialog
-
.setIcon(R.drawable.pic_m) // 设置显示图片
-
.setTitle("查看图片") // 设置标题
-
.setView(showImg) // 设置组件
-
.setNegativeButton("关闭", // 设置取消按钮
-
new DialogInterface.OnClickListener() {
-
public void onClick(DialogInterface dialog,int whichButton) {
-
}}).create(); // 创建对话框
-
dialog.show(); // 显示对话框
-
}
-
}
-
public void initAdapter(){ // 初始化适配器
-
Field[] fields = R.drawable.class.getDeclaredFields();
-
for (int x = 0; x < fields.length; x++) {
-
if (fields[x].getName().startsWith("png_")){ // 所有png_*命名的图片
-
Map<String,Integer> map = new HashMap<String,Integer>() ;// 定义Map
-
try {
-
map.put("img", fields[x].getInt(R.drawable.class)) ;
-
} catch (Exception e) { // 设置图片资源
-
}
-
this.list.add(map) ; // 保存Map
-
}
-
}
-
this.simpleAdapter = new SimpleAdapter(this, // 实例化SimpleAdapter
-
this.list, // 要包装的数据集合
-
R.layout.grid_layout, // 要使用的显示模板
-
new String[] { "img" }, // 定义要显示的Map的Key
-
new int[] {R.id.img }); // 与模板中的组件匹配
-
}
-
}
020711_网格视图:GridView.ppt
阅读(1135) | 评论(0) | 转发(0) |