本文实例讲述了android使用gridview展示图片的方法。分享给大家供大家参考,具体如下:
今天说说gridview的使用。
所谓gvidview翻译过来就是网格布局:是一个viewgroup以网格显示它的子视图(view)元素,即二维的、可滚动的网格。网格元素通过listadapter自动插入到网格。
这个gridview用处特别多,我这里是用来展示广告的。2*3的广告位置。
废话少说先看个效果图,有图就可以说个xx,对吧,大家都懂的。
大家可以看到搜索下面的那6个块,效果布局还行吧,哈哈。下面跟着我的节奏来实现这个效果:
第一步准备你的layout.xml
在你的layout.xml中加入一个gridview:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<gridview android:id= "@+id/topmerchants" style= "@style/customgridview" android:layout_width= "fill_parent" android:layout_height= "0dip" android:layout_margintop= "0dip" android:layout_weight= "1" android:columnwidth= "50dip" android:gravity= "center" android:horizontalspacing= "5dip" android:numcolumns= "3" android:paddingtop= "5dip" android:stretchmode= "columnwidth" android:verticalspacing= "5dip" android:minheight= "50dip" /> |
这里面的属性都好理解,按照英文意思就行了,这里不多说。
第二步,准备gridview要展示的内容,即一个adapter:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
public class topmerchantgridadapter extends baseadapter { private list<? extends object> list; private asyncimageloader asyncimageloader; private context context; private static int getviewtimes = 0 ; private string tag = topmerchantgridadapter. class .getname(); public topmerchantgridadapter(list<? extends object> list, context context) { this .list = list; this .context = context; asyncimageloader = new asyncimageloader(); } @override public int getcount() { return list.size(); } @override public object getitem( int position) { return list.get(position); } @override public long getitemid( int position) { return position; } @override public view getview( int position, view convertview, viewgroup parent) { final imageview imageview; quhaolog.i(tag, "getview times : " + (getviewtimes++)); quhaolog.i(tag, "getview " + position + " " + convertview); drawable cachedimage = null ; topmerchant topmerchant = (topmerchant) this .getitem(position); final int defaultwidth = phonetool.getscreenwidth() / 3 ; // 屏幕宽度的1/3 final int defaulthight = phonetool.getscreenheight() / 7 ; // 屏幕高度的1/7 if ( null == convertview) { imageview = new imageview(context); imageview.setlayoutparams( new gridview.layoutparams(defaultwidth, defaulthight)); imageview.setpadding( 8 , 8 , 8 , 8 ); } else { imageview = (imageview) convertview; } imageview.setscaletype(imageview.scaletype.fit_xy); // no content on top merchant grid if (stringutils.isnull(topmerchant.id)) { imageview.setimageresource(r.drawable.no_logo); return imageview; } string imageurl = topmerchant.url; quhaolog.d(tag, "asyncimageloader, the imageurl is : " + imageurl); if (stringutils.isnotnull(imageurl)) { cachedimage = asyncimageloader.loaddrawable(imageurl, position); //这里是从网络获取图片 imageview.setimagedrawable(cachedimage); } return imageview; } class viewholder { imageview img; textview itemview; textview countview; } } |
这里主要要注意的是重写getview方法。这里我的图片展示有两种来源,一个是本地图片(no_logo),还有一种是从网络中下载的。你可以忽略来源。
最后一步把gridview和adapter连接起来:
1
2
3
4
5
|
gridview categorysgird = (gridview) findviewbyid(r.id.categorys); // 获取到gridview listadapter adapter = new topmerchantgridadapter(topmerchants, mainactivity. this ); topmerchantsgird.setadapter(adapter); // 设置gridview的数据 |
希望本文所述对大家android程序设计有所帮助。