运城建设银行网站点千度seo
随时随地技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)
ListView和GridView都是Android中非常重要的组件,下面通过一个简单实例来演示GridView的使用,该例中实现点击GridView中的某张放缩了的图片,将原图片显示在GridView下面。
Activity:
package com.lovo.activity;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;import com.lovo.R;public class TestGridActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_gridview_layout);// 创建存放图片id的数组int[] imageAry = new int[] { R.drawable.image1, R.drawable.image2,R.drawable.image3, R.drawable.image4, R.drawable.image5,R.drawable.image6, R.drawable.image7};// 创建List集合对象List list = new ArrayList();// 向List集合添加数据for (int i = 0; i < imageAry.length; i++) {Map map = new HashMap();map.put("image", imageAry[i]);list.add(map);}// 实例化SimpleAdapter适配器对象SimpleAdapter adapter = new SimpleAdapter(this, list,R.layout.gridview_content, new String[] { "image" },new int[] { R.id.gridview_content_image });// 获得GridView组件GridView gridView = (GridView) findViewById(R.id.test_gridview_layout_gridview);// 向GridView组件添加内容gridView.setAdapter(adapter);// 给GridView组件注册事件监听gridView.setOnItemClickListener(new OnItemClickListener() {@Override// 参数1:拥有适配器的View,本例中就是GridView;参数2:就是选中的view的布局,指的是LinearLayout或RelativeLayout之类,通过它可以获得该项中的各个组件// 参数3:选中的view在适配器中的位置;参数4:选中的view在GridView的相对位置。public void onItemClick(AdapterView<?> adapterView, View view,int arg2, long arg3) {// 打印上面四个参数Log.i("adapterView", adapterView + "");Log.i("view", view + "");Log.i("arg2", arg2 + "");Log.i("arg3", arg3 + "");// 获得GridView中选中的ImageView组件ImageView imageView1 = (ImageView) view.findViewById(R.id.gridview_content_image);// 获得需要显示完整图片的ImageView组件ImageView imageView2 = (ImageView) findViewById(R.id.img1);// 把选中的图片设置到imageView2组件中imageView2.setImageDrawable(imageView1.getDrawable());}});}
}
布局XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><GridViewandroid:id="@+id/test_gridview_layout_gridview"android:layout_width="match_parent"android:layout_height="300dp"android:gravity="center"android:horizontalSpacing="20dp"android:numColumns="3"android:verticalSpacing="20dp" ></GridView><ImageViewandroid:id="@+id/img1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_horizontal" /></LinearLayout>
GridView中每一格子的布局XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ImageViewandroid:id="@+id/gridview_content_image"android:layout_width="80dp"android:layout_height="80dp"android:layout_gravity="center"android:scaleType="center" /></LinearLayout>
附上图片效果: