GridView是一个网络布局的视图,他能让你的元素显示在一个个的格子里。我们的桌面就是一个GridView。。

1、新建一个gridview工程,activity_main.xml的代码如下:

<?xmlversion="1.0"encoding="utf-8"?><GridViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/gridview"android:layout_width="fill_parent"android:layout_height="fill_parent"android:columnWidth="90dp"android:numColumns="auto_fit"android:horizontalSpacing="10dp"android:verticalSpacing="10dp"android:stretchMode="columnWidth"android:gravity="center"></GridView>

很简单,就是一个GridView。设置列宽为90dp,这样当我们的numColumns设置为auto_fit时,Android就会自动计算我们手机屏幕的大小以决定每一行展示几个元素。这是很方便。android:horizontalSpacing定义列之间的间隔,android:verticalSpacing定义行之间的间隔。android:stretchMode设置为columnWidth是意味着根据列宽自动缩放。

2、修改MainActivity.java代码如下:

packagecom.example.gridview;importandroid.app.Activity;importandroid.content.Context;importandroid.os.Bundle;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.AdapterView;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.BaseAdapter;importandroid.widget.GridView;importandroid.widget.ImageView;importandroid.widget.Toast;publicclassMainActivityextendsActivity{//展示图片privateInteger[]mThumbIds={R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,R.drawable.ic_launcher,R.drawable.music,R.drawable.video,R.drawable.photo};@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);GridViewgridView=(GridView)findViewById(R.id.gridview);gridView.setAdapter(newImageAdapter(this));//单击GridView元素的响应gridView.setOnItemClickListener(newOnItemClickListener(){@OverridepublicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//弹出单击的GridView元素的位置Toast.makeText(MainActivity.this,mThumbIds[position],Toast.LENGTH_LONG).show();}});}privateclassImageAdapterextendsBaseAdapter{privateContextmContext;publicImageAdapter(Contextcontext){this.mContext=context;}@OverridepublicintgetCount(){returnmThumbIds.length;}@OverridepublicObjectgetItem(intposition){returnmThumbIds[position];}@OverridepubliclonggetItemId(intarg0){//TODO自动生成的方法存根return0;}@OverridepublicViewgetView(intposition,ViewconvertView,ViewGroupparent){//定义一个ImageView,显示在GridView里ImageViewp_w_picpathView;if(convertView==null){p_w_picpathView=newImageView(mContext);p_w_picpathView.setLayoutParams(newGridView.LayoutParams(85,85));p_w_picpathView.setScaleType(ImageView.ScaleType.CENTER_CROP);p_w_picpathView.setPadding(8,8,8,8);}else{p_w_picpathView=(ImageView)convertView;}p_w_picpathView.setImageResource(mThumbIds[position]);returnp_w_picpathView;}}}

这里我们也是采用的自定义Adapter,展示了一些图片,然后点击一个图片的时候会显示这个图片所在的位置。

3、运行程序,效果图如下: