Android中GridView组件的使用
16lz
2021-01-23
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>
附上图片效果:
更多相关文章
- 修改Android开机图片、动画、声音
- android 使用Activity类布局时怎样让图片居中
- android上传图片和参数(属性)到服务器
- Android多点触控---Matrix图片随意的放大缩小,拖动
- Android图片轮播控件---com.youth.banner.Banner