本文实例讲述了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程序设计有所帮助。