Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来应用的比较多的就是组合图片显示下面我就详细讲一个例子

首先写一个类继承BaseAdapter

[Java]代码

package com.yarin.android.Examples_04_19;

02
03 import android.content.Context;
04 import android.view.View;
05 import android.view.ViewGroup;
06 import android.widget.BaseAdapter;
07 import android.widget.GridView;
08 import android.widget.ImageView;
09
10 public class ImageAdapter extends BaseAdapter
11 {
12 // 定义Context
13 private Context mContext;
14 // 定义整型数组 即图片源
15 private Integer[] mImageIds =
16 {
17 R.drawable.img1,
18 R.drawable.img2,
19 R.drawable.img3,
20 R.drawable.img4,
21 R.drawable.img5,
22 R.drawable.img6,
23 R.drawable.img7,
24 R.drawable.img8,
25 R.drawable.img1,
26 };
27
28 public ImageAdapter(Context c)
29 {
30 mContext = c;
31 }
32
33 // 获取图片的个数
34 public int getCount()
35 {
36 return mImageIds.length;
37 }
38
39 // 获取图片在库中的位置
40 public Object getItem(int position)
41 {
42 return position;
43 }
44
45
46 // 获取图片ID
47 public long getItemId(int position)
48 {
49 return position;
50 }
51
52
53 public View getView(int position, View convertView, ViewGroup parent)
54 {
55 ImageView imageView;
56 if (convertView == null)
57 {
58 // 给ImageView设置资源
59 imageView = new ImageView(mContext);
60 // 设置布局 图片120×120显示
61 imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
62 // 设置显示比例类型
63 imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
64 }
65 else
66 {
67 imageView = (ImageView) convertView;
68 }
69
70 imageView.setImageResource(mImageIds[position]);
71 return imageView;
72 }
73
74 }

[代码] [Java]代码

view source print ?
01 package com.yarin.android.Examples_04_19;
02
03 import android.app.Activity;
04 import android.os.Bundle;
05 import android.view.View;
06 import android.widget.AdapterView;
07 import android.widget.GridView;
08 import android.widget.Toast;
09 import android.widget.AdapterView.OnItemClickListener;
10
11 public class Activity01 extends Activity
12 {
13 /** Called when the activity is first created. */
14 @Override
15 public void onCreate(Bundle savedInstanceState)
16 {
17 super.onCreate(savedInstanceState);
18 setContentView(R.layout.main);
19
20 //取得GridView对象
21 GridView gridview = (GridView) findViewById(R.id.gridview);
22 //添加元素给gridview
23 gridview.setAdapter(new ImageAdapter(this));
24
25 // 设置Gallery的背景
26 gridview.setBackgroundResource(R.drawable.bg0);
27
28 //事件监听
29 gridview.setOnItemClickListener(new OnItemClickListener() {
30 public void onItemClick(AdapterView<?> parent, View v, int position, long id)
31 {
32 Toast.makeText(Activity01.this, "你选择了" + (position + 1) + " 号图片", Toast.LENGTH_SHORT).show();
33 }
34 });
35 }
36 }

[代码] [XML]代码

view source print ?
01 <?xml version="1.0" encoding="utf-8"?>
02 <GridView xmlns:android="http://schemas.android.com/apk/res/android"
03 android:id="@+id/gridview"
04 android:layout_width="fill_parent"
05 android:layout_height="fill_parent"
06 android:numColumns="auto_fit"
07 android:verticalSpacing="10dp"
08 android:horizontalSpacing="10dp"
09 android:columnWidth="90dp"
10 android:stretchMode="columnWidth"
11 android:gravity="center"
12 />

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. PianoView-添加一行代码使用[最美应用]的酷炫控件!
  3. android proguard混淆apk问题
  4. android所有需要的Demo地址
  5. 学习Android闹钟源代码(三)-AlarmClock类分析(part2)
  6. Android(安卓)Base64编码解码
  7. Android——为图片增加水印,并且保存到图库刷新
  8. 【译】如何在 Android(安卓)中使用 Retrofit, Moshi, Coroutines
  9. Android(安卓)2.3新增API - DownloadManager

随机推荐

  1. Android绘图之RadialGradient 放射渐变(11
  2. android,自定义广播,最终广播接收者,防止拦
  3. apk反编译和再编译
  4. Android修改系统语言
  5. react-native之module的使用
  6. android 拖拉图片 选中居中
  7. HAL层,.sensors.h 头文件分析
  8. Android(安卓)自动化性能测试
  9. android 混淆 gson
  10. android 9.0 拍照 相册选择 图片 裁切后