如何使用GridView实现不同数量显示图片不同的大小
有时我们需要在空间看到说说发布一张图片变得很大,多发几张图片就变小了,为了实现这个效果我们就需要Gridview 和它的Adapter
下面是GridView的代码
activity_grid_test.xml
<LineaLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.rindiaco.myweibo.GridTestActivity"><GridView
android:id="@+id/testimggridview"android:layout_width="match_parent"android:layout_height="wrap_content"></GridView>
</LineaLayout >
这里的numColumns我们在gridview 的绑定环境再设置
Activity代码
GridTestActivity.java
public class GridTestActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_grid_test);LinkedList<Integer> pictures = new LinkedList<>();pictures.add(R.drawable.imgid4);// pictures.add(R.drawable.imgid1);
// pictures.add(R.drawable.imgid2);
// pictures.add(R.drawable.imgid3);// pictures.add(R.drawable.imgid5);
// pictures.add(R.drawable.imgid6);GridView testimggridveiw = (GridView) findViewById(R.id.testimggridview);//在这里判断图片的数量,根据图片的数量改变GridView的列数,图片的大小要在Adapter里设置才有效if (pictures.size()>=3) testimggridveiw.setNumColumns(3);if (pictures.size()==1) testimggridveiw.setNumColumns(1);//绑定自定义的adapterMyImageAdapter imgadapter = new MyImageAdapter(this,pictures);testimggridveiw.setAdapter(imgadapter);}
}
现在是Adapter的内容
MyImageAdapter.java
public class MyImageAdapter extends BaseAdapter{Context context;LinkedList<Integer> imgList;MyImageAdapter(Context context , LinkedList<Integer> imgList){this.context = context;this.imgList = imgList;}@Overridepublic int getCount() {return imgList.size();}@Overridepublic long getItemId(int position) {return position;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHodler viewHodler;if (convertView == null){viewHodler = new ViewHodler();convertView = View.inflate(context,R.layout.image,null);viewHodler.imageView = (ImageView) convertView.findViewById(R.id.imgview);//根据图片的数量设置图片的大小,这里的大小是写的具体数值,也可以获得手机屏幕的尺寸来设置图片的大小if (imgList.size()==1){ViewGroup.LayoutParams params = viewHodler.imageView.getLayoutParams();params.height = 800;params.width = 800;viewHodler.imageView.setLayoutParams(params);}else if (imgList.size()==2){ViewGroup.LayoutParams params = viewHodler.imageView.getLayoutParams();params.height = 600;params.width = 600;viewHodler.imageView.setLayoutParams(params);}else{ViewGroup.LayoutParams params = viewHodler.imageView.getLayoutParams();params.height = 400;params.width = 400;viewHodler.imageView.setLayoutParams(params);}convertView.setTag(viewHodler);}else{viewHodler =(ViewHodler) convertView.getTag();}viewHodler.imageView.setImageResource(imgList.get(position));return convertView;}class ViewHodler{ImageView imageView;}
}
LayoutParams 是view 的一个内部类,相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息,它可以设置以下三个值:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住组件就好。
image.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"android:padding="5dp"android:gravity="center"xmlns:android="http://schemas.android.com/apk/res/android" >
<ImageView
android:id="@+id/imgview"android:layout_width="100dp"android:layout_height="100dp">
</ImageView>
</LinearLayout>
实现效果
一张图片
两张图片
9张图片
这个功能最核心的想法就是改变GridView的列数和图片的大小
如何使用GridView实现不同数量显示图片不同的大小相关推荐
- opencv java 显示图片_【opencv三】利用opencv读取显示图片
在opencv中读取显示图片的头文件是highgui.hpp. 整体代码如下,如要测试自己的图片,需要将代码段中的图片地址更改为自己图片的绝对路径. #include "opencv2/hi ...
- android 打开微信好友动态图片,Android GridView仿微信朋友圈显示图片
最近项目要求上传多图并且多图显示,而且要规则的显示,就像微信朋友圈的图片显示一样. 利用GridView再适合不过了,GridView可以动态加载图片的数量,而且还比较规律,下面说一下自己的思路: 1 ...
- 【Android 控件使用及源码解析】 GridView规则显示图片仿微信朋友圈发图片
今天闲下来想用心写一点东西,发现没什么可写的,就写一下最近项目上用到的一些东西吧.最近项目要求上传多图并且多图显示,而且要规则的显示,就像微信朋友圈的图片显示一样. 想了一下用GridView再适合不 ...
- GridView显示图片
参考文章:http://www.cnblogs.com/jll/archive/2005/12/14/297153.html 以下内容出处忘了 = =! 在ASP.NET中经常需要使用GridView ...
- Android中GridView 如何正方形显示图片并适配手机
刚刚做了一个项目,是做应用墙相关的,就是把一个个应用的图标和名称显示到GridView中.本来想着,像GridView这样常用成熟的控件,使用应该非常的简单,但真正在项目中实现起来,就有各种各样的小问 ...
- Chevereto V4 首页显示图片托管数量的实现方法
博主最近一直想在Chevereto V4 首页显示图片托管数量,但是网上的方法只针对于Chevereto V3,V4却没有相关教程,查询谷歌也无结果,经博主查询大量案例今天为大家分享一下 Chever ...
- GridView显示图片(图文)
1.托个GridView控件,手动或自动配置数据皆可: 2.编辑列--添加imgefield 3.设置imagefield的属性,主要是两个 然后点确定就好了: 4,当然了,如果你遇到这种情况的话 是 ...
- ASP.NET gridView 显示图片[转载]
读研的生活简直就是扯淡,中国的教育原来就是这么的悲催,后悔去读研了.不感叹了,因为帮朋友忙,写了一个关于这个的东西,所以转载别人的代码,学习,学习,不管以后如何学习都是第一位的.废话不说,上代码. 在 ...
- android gridview横向显示图片,Android使用Gridview单行横向滚动显示
本文实例为大家分享了Android使用Gridview单行横向滚动显示的具体代码,供大家参考,具体内容如下 要想实现滚动显示,layout布局里必须要使用HorizontalScrollView,才能 ...
最新文章
- [转]计算机读研的取向
- jQuery1.9+中删除了live以后的替代方法
- 从2018年12月起陆续将博客搬至博客园(cnblogs)
- 使用logstash将Mysql中的数据导入到ElasticSearch中(详细步骤,win_Elasticsearch)
- int android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null.....
- wps数据匹配怎么做_【VK技术分享】数据安全怎么做—静态数据的识别和治理
- shell对于字符串的操作
- 如何在Java中使用重复项查找整数数组中的K个缺失数字?
- python3.7是什么_Python 3.7 有什么新变化
- nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉
- windows2003 ftp 无法下载 解决
- android 定时器 坑,Android 记录一个使用AlarmManager的坑。
- 技术总结之SpringIOC
- matlab经验分布函数 教程,经验分布函数.ppt
- win10无法连接wifi_更新WIN10 1903遇到旧版高通驱动无法连接WIFI重新安装网卡驱动...
- 构建KEGG pathway、Entrez ID、Ensemble ID的对应关系
- 革命三部曲系列——《邪不压正》中,究竟布了多大的一个局!
- 基于DNN的IMDB电影数据集文本分类
- 外卖产品(饿了么、美团外卖、百度外卖)竞品分析
- Jsckson 实现 java 对象与 JSONObject 和 JSONArray 互转
热门文章
- 微信公众号关于百度地图和腾讯地图本地定位api的调用(js)
- 关于视频网站盈利模式的设想
- Fluent速度、压力入口边界条件的设定
- 基于GC - MS的代谢组学研究揭示:SD大鼠和Wistar大鼠之间存在系统的代谢差异及乙醇灌胃反应差异
- ASP.NET学习之Repeater
- BPM.NET设计器,流程控制的能力-SEO狼术
- Ipad电容笔买原装还是平替?高性价比的ipad平替电容笔推荐
- java判断时间是否超过24小时_判断两个日期是否超过24小时!
- 利用TL-WR842N(V4)进行路由桥接搭建WDS出现的问题
- matlab diary on,matlab-dlmwrite跟diary输出数据