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" >    <GridView        android: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>    <ImageView        android: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" >    <ImageView        android:id="@+id/gridview_content_image"        android:layout_width="80dp"        android:layout_height="80dp"        android:layout_gravity="center"        android:scaleType="center" /></LinearLayout>


附上图片效果:


更多相关文章

  1. Android应用程序四大组件
  2. Space在Android里的应用
  3. Android主流Router库对比(ARouter、ActivityRouter)
  4. android用户界面-组件Widget-画廊视图Gallery
  5. android实现页面下方的Tab效果
  6. Android五大布局(二)——RelativeLayout、TableLayout 和AbsoulteL
  7. android上传图片和参数(属性)到服务器
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. Python技巧匿名函数、回调函数和高阶函数

随机推荐

  1. Android(安卓)SDK 国内镜像
  2. flutter [!] Android(安卓)toolchain - d
  3. 【Android(安卓)系统开发】 Android(安卓
  4. asdsad
  5. 自定义对话框Dialog
  6. 怎么让Linearlayout里面的textview垂直居
  7. android manifest.xml
  8. 从零开始学习Android开发
  9. android图片缩放平移
  10. 消息驱动 Looper类