? ? ? ? 首先简单说明一下实现这个简单的图片查看器,我们需要做些那些工作,实现图片查看器我们应该第一先到要用到的是适配器(Adapter)一下是adpter的构造函数,
SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) 从构造函数我们可以看出他告诉我们要实现他我们需要给他传一个context上下文的参数 ,list数据源数组,resource数据源文件用来显示List中一条数据的布局文件,String[] HashMap中Key的值,int[]to 元素中布局文件中的试图id (应为)这里图片肯定不只一张需要用数组来保存;
显示GridVeiwd的layout
??? <GridView
??????? android:id="@+id/gridView"
??????? android:layout_width="match_parent"
??????? android:layout_height="wrap_content"
??????? android:horizontalSpacing="10dp"
??????? android:numColumns="4"
??????? android:padding="10dp"
??????? android:verticalSpacing="100dp"
/>
//这个GridVeiw控件的是四列组成 内边距是10dp水平间隔也是100dp
显示图片和备注的layout
??? <ImageView
??????? android:id="@+id/img"
??????? android:layout_width="50dp"
??????? android:layout_height="50dp"
?????? />
?
??? <TextView
??????? android:id="@+id/text"
??????? android:layout_width="50dp"
??????? android:layout_height="wrap_content"
??????? android:gravity="center_horizontal"
?????? />
//这个layout就是一个ImgeVeiw和TextVeiw控件属性也比较简单这里我不多说了
这个在MainActivity需要实现的代码
?????? private GridView gridView;
?????? static int[] imgs = { R.drawable.a1, R.drawable.a2, ………};
?????? //这个数组的作用是存放的图片,这个我了叙述简单就直接将突破存放在res.drawable-hdpi下面,当然在实际的项目中图片的存放有可能是一个url路径,或者是CD卡。
@Override
?????? protected void onCreate(Bundle savedInstanceState) {
????????????? super.onCreate(savedInstanceState);
????????????? this.setContentView(R.layout.activity_third);
?
????????????? // 获得网格视图
????????????? gridView = (GridView) this.findViewById(R.id.gridView);
?
????????????? // 数据源
????????????? ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
?
????????????? for (int i = 0; i < imgs.length; i++) {
HashMap<String, Object> map = new HashMap<String,Object>();
???????????????????? map.put("k1", imgs[i]);
???????????????????? map.put("k2", "程序" + i);
???????????????????? data.add(map);
????????????? }
?
????????????? String[] from = { "k1", "k2" };
????????????? int[] to = { R.id.img, R.id.text };
????????????? // 参数1:上下文
????????????? // 参数2:数据
????????????? // 参数3:用来显示List中一条数据的布局文件
????????????? // 参数4:HashMap中K的数组??
????????????? // 参数5:元素的布局文件中的视图id
????????????? SimpleAdapter adapter = new SimpleAdapter(this, data,
??????????????????????????? R.layout.grid_item, from, to);
????????????? gridView.setAdapter(adapter);
?????? //设置这个适配器
?
?????? }
?
? ? ? ?效果图:
? ? ? ?
?
这就是一个简单的图片查看器 很简单 大家去试一试吧。。。
原文:http://hit-me.iteye.com/blog/2172961