Android(安卓)GridView的使用
16lz
2021-01-25
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 | /> |
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- PianoView-添加一行代码使用[最美应用]的酷炫控件!
- android proguard混淆apk问题
- android所有需要的Demo地址
- 学习Android闹钟源代码(三)-AlarmClock类分析(part2)
- Android(安卓)Base64编码解码
- Android——为图片增加水印,并且保存到图库刷新
- 【译】如何在 Android(安卓)中使用 Retrofit, Moshi, Coroutines
- Android(安卓)2.3新增API - DownloadManager