Android开发之使用GridView展示图片的方法
程序员文章站
2023-12-18 19:25:10
本文实例讲述了android使用gridview展示图片的方法。分享给大家供大家参考,具体如下:
今天说说gridview的使用。
所谓gvidview翻译过来就是网格...
本文实例讲述了android使用gridview展示图片的方法。分享给大家供大家参考,具体如下:
今天说说gridview的使用。
所谓gvidview翻译过来就是网格布局:是一个viewgroup以网格显示它的子视图(view)元素,即二维的、可滚动的网格。网格元素通过listadapter自动插入到网格。
这个gridview用处特别多,我这里是用来展示广告的。2*3的广告位置。
废话少说先看个效果图,有图就可以说个xx,对吧,大家都懂的。
大家可以看到搜索下面的那6个块,效果布局还行吧,哈哈。下面跟着我的节奏来实现这个效果:
第一步准备你的layout.xml
在你的layout.xml中加入一个gridview:
<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:
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连接起来:
gridview categorysgird = (gridview) findviewbyid(r.id.categorys); // 获取到gridview listadapter adapter = new topmerchantgridadapter(topmerchants, mainactivity.this); topmerchantsgird.setadapter(adapter); // 设置gridview的数据
希望本文所述对大家android程序设计有所帮助。
推荐阅读
-
Android开发之使用GridView展示图片的方法
-
Android开发之imageView图片按比例缩放的实现方法
-
Android编程开发之TextView单击链接弹出Activity的方法
-
Android开发之全屏与非全屏的切换设置方法小结
-
Android使用GridView实现日历的方法
-
iOS开发之image图片压缩及压缩成指定大小的两种方法
-
Android编程开发之ScrollView嵌套GridView的方法
-
iOS程序开发之使用PlaceholderImageView实现优雅的图片加载效果
-
Android编程开发之EditText中不输入特定字符会显示相关提示信息的方法
-
Android开发之图片旋转功能实现方法【基于Matrix】