有时我们需要在空间看到说说发布一张图片变得很大,多发几张图片就变小了,为了实现这个效果我们就需要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实现不同数量显示图片不同的大小相关推荐

  1. opencv java 显示图片_【opencv三】利用opencv读取显示图片

    在opencv中读取显示图片的头文件是highgui.hpp. 整体代码如下,如要测试自己的图片,需要将代码段中的图片地址更改为自己图片的绝对路径. #include "opencv2/hi ...

  2. android 打开微信好友动态图片,Android GridView仿微信朋友圈显示图片

    最近项目要求上传多图并且多图显示,而且要规则的显示,就像微信朋友圈的图片显示一样. 利用GridView再适合不过了,GridView可以动态加载图片的数量,而且还比较规律,下面说一下自己的思路: 1 ...

  3. 【Android 控件使用及源码解析】 GridView规则显示图片仿微信朋友圈发图片

    今天闲下来想用心写一点东西,发现没什么可写的,就写一下最近项目上用到的一些东西吧.最近项目要求上传多图并且多图显示,而且要规则的显示,就像微信朋友圈的图片显示一样. 想了一下用GridView再适合不 ...

  4. GridView显示图片

    参考文章:http://www.cnblogs.com/jll/archive/2005/12/14/297153.html 以下内容出处忘了 = =! 在ASP.NET中经常需要使用GridView ...

  5. Android中GridView 如何正方形显示图片并适配手机

    刚刚做了一个项目,是做应用墙相关的,就是把一个个应用的图标和名称显示到GridView中.本来想着,像GridView这样常用成熟的控件,使用应该非常的简单,但真正在项目中实现起来,就有各种各样的小问 ...

  6. Chevereto V4 首页显示图片托管数量的实现方法

    博主最近一直想在Chevereto V4 首页显示图片托管数量,但是网上的方法只针对于Chevereto V3,V4却没有相关教程,查询谷歌也无结果,经博主查询大量案例今天为大家分享一下 Chever ...

  7. GridView显示图片(图文)

    1.托个GridView控件,手动或自动配置数据皆可: 2.编辑列--添加imgefield 3.设置imagefield的属性,主要是两个 然后点确定就好了: 4,当然了,如果你遇到这种情况的话 是 ...

  8. ASP.NET gridView 显示图片[转载]

    读研的生活简直就是扯淡,中国的教育原来就是这么的悲催,后悔去读研了.不感叹了,因为帮朋友忙,写了一个关于这个的东西,所以转载别人的代码,学习,学习,不管以后如何学习都是第一位的.废话不说,上代码. 在 ...

  9. android gridview横向显示图片,Android使用Gridview单行横向滚动显示

    本文实例为大家分享了Android使用Gridview单行横向滚动显示的具体代码,供大家参考,具体内容如下 要想实现滚动显示,layout布局里必须要使用HorizontalScrollView,才能 ...

最新文章

  1. [转]计算机读研的取向
  2. jQuery1.9+中删除了live以后的替代方法
  3. 从2018年12月起陆续将博客搬至博客园(cnblogs)
  4. 使用logstash将Mysql中的数据导入到ElasticSearch中(详细步骤,win_Elasticsearch)
  5. int android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a null.....
  6. wps数据匹配怎么做_【VK技术分享】数据安全怎么做—静态数据的识别和治理
  7. shell对于字符串的操作
  8. 如何在Java中使用重复项查找整数数组中的K个缺失数字?
  9. python3.7是什么_Python 3.7 有什么新变化
  10. nutzwk运行后wk-web中生成ehcache.disk.store.dir有什么用,怎么去掉
  11. windows2003 ftp 无法下载 解决
  12. android 定时器 坑,Android 记录一个使用AlarmManager的坑。
  13. 技术总结之SpringIOC
  14. matlab经验分布函数 教程,经验分布函数.ppt
  15. win10无法连接wifi_更新WIN10 1903遇到旧版高通驱动无法连接WIFI重新安装网卡驱动...
  16. 构建KEGG pathway、Entrez ID、Ensemble ID的对应关系
  17. 革命三部曲系列——《邪不压正》中,究竟布了多大的一个局!
  18. 基于DNN的IMDB电影数据集文本分类
  19. 外卖产品(饿了么、美团外卖、百度外卖)竞品分析
  20. Jsckson 实现 java 对象与 JSONObject 和 JSONArray 互转

热门文章

  1. 微信公众号关于百度地图和腾讯地图本地定位api的调用(js)
  2. 关于视频网站盈利模式的设想
  3. Fluent速度、压力入口边界条件的设定
  4. 基于GC - MS的代谢组学研究揭示:SD大鼠和Wistar大鼠之间存在系统的代谢差异及乙醇灌胃反应差异
  5. ASP.NET学习之Repeater
  6. BPM.NET设计器,流程控制的能力-SEO狼术
  7. Ipad电容笔买原装还是平替?高性价比的ipad平替电容笔推荐
  8. java判断时间是否超过24小时_判断两个日期是否超过24小时!
  9. 利用TL-WR842N(V4)进行路由桥接搭建WDS出现的问题
  10. matlab diary on,matlab-dlmwrite跟diary输出数据