类似QQ空间,微信朋友圈,微博主页等,展示图片的九宫格控件,自动根据图片的数量确定图片大小和控件大小,使用Adapter模式设置图片,对外提供接口回调,使用接口加载图片,支持任意的图片加载框架,如 Glide,ImageLoader,Fresco,xUtils3,Picasso 等,支持点击图片全屏预览大图。

该内容转载至 NineGridView

NineGridView

类似QQ空间,微信朋友圈,微博主页等,展示图片的九宫格控件,自动根据图片的数量确定图片大小和控件大小,使用Adapter模式设置图片,对外提供接口回调,支持任意的图片加载框架,如 Glide,ImageLoader,Fresco,xUtils3,Picasso 等,支持点击图片全屏预览大图。

该项目是根据:https://github.com/laobie/NineGridImageView 修改而成,进行了优化扩展,使代码更加简单,喜欢原作的可以去使用。同时欢迎大家下载体验本项目,如果使用过程中遇到什么问题,欢迎反馈。

联系方式

  • 邮箱地址: liaojeason@126.com
  • QQ群: 489873144 (建议使用QQ群,邮箱使用较少,可能看的不及时)
  • 本群刚建立,旨在为使用我的github项目的人提供方便,如果遇到问题欢迎在群里提问。个人能力也有限,希望一起学习一起进步。

演示

1.用法

使用前,对于Android Studio的用户,可以选择添加:

 compile 'com.lzy.widget:ninegridview:0.2.0'

或者使用

    compile project(':ninegridview')

2.项目功能

  • 使用Adapter模式设置图片
  • 当图片数量只有一张时,自动根据图片大小调整控件大小
  • 默认增加了图片点击全屏预览效果,并附带预览动画
  • 使用接口加载图片,支持任意的图片加载框架,如 Glide,ImageLoader,Fresco,xUtils3,Picasso 等
  • 整合了PhotoView图片预览
  • 使用接口抽出图片的加载方式,可以方便的将Glide替换成自己喜欢的ImageLoader等
  • 支持fill个grid两种显示模式
  • 当获取的图片数量超过最大显示的图片数量时,最后一张图片上会显示剩余数量(类似于QQ的动态效果)
  • 使用代码简单,只需要几行代码
  • 其他功能增加中......

3.参数含义

自定义属性名字 参数含义
ngv_singleImageSize 只显示一张图片时的最大图片大小
ngv_singleImageRatio 只显示一张图片时图片宽高比
ngv_gridSpacing 网格显示图片时,图片之间的间距,默认3dp
ngv_maxSize 最多显示图片的数量,默认最大9张
ngv_mode 支持fill和grid两种显示模式,其中grid模式在显示4张图片时采用2*2的布局

4.代码演示

1.在Application中初始化NineGridView的图片加载器

    NineGridView.setImageLoader(new PicassoImageLoader());/** Picasso 加载 */private class PicassoImageLoader implements NineGridView.ImageLoader {@Overridepublic void onDisplayImage(Context context, ImageView imageView, String url) {Picasso.with(context).load(url)//.placeholder(R.drawable.ic_default_image)//.error(R.drawable.ic_default_image)//.into(imageView);}@Overridepublic Bitmap getCacheImage(String url) {return null;}}

2.在自己的Adapter中初始化NineGridView的适配器

  • ImageInfo是库中提供的数据Bean,需要两个url,分别表示小图和大图的url,没有大图或者小图,则都赋给相同的Url即可。
  • ClickNineGridViewAdapter是库中提供的默认实现了点击预览的Adapter,如果不想使用预览效果,可以自己继承 NineGridViewAdapter 实现其中 onDisplayImage 方法即可。
 ArrayList<ImageInfo> imageInfo = new ArrayList<>();List<EvaluationPic> imageDetails = item.getAttachments();if (imageDetails != null) {for (EvaluationPic imageDetail : imageDetails) {ImageInfo info = new ImageInfo();info.setThumbnailUrl(imageDetail.smallImageUrl);info.setBigImageUrl(imageDetail.imageUrl);imageInfo.add(info);}}holder.nineGrid.setAdapter(new ClickNineGridViewAdapter(context, imageInfo));

类似QQ空间,微信朋友圈,微博主页等,展示图片的九宫格控件相关推荐

  1. h5移动端,类似qq空间、朋友圈不规则图片显示适配功能

    前言 最近再做个H5移动端社交类型项目的时候,里面有一块 类似朋友圈.qq空间展示的模块,开发的时候发现了一个问题,就是展示用户上传的图片,因为用户上传的图片 可能是相机拍的,可能是截图.可能是网上找 ...

  2. php mysql仿微信朋友圈评论表设计_PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)...

    我们大部分人都发过动态,想必都知道发动态.回复评论.删除动态的整个过程,那么作为初学者,要模仿这些功能有点复杂的,最起码表的关系得弄清楚~~ 先把思路理一下: (1)用户登录,用session读取当前 ...

  3. php 朋友圈留言,php实例-PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)...

    我们大部分人都发过动态,想必都知道发动态.回复评论.删除动态的整个过程,那么这个功能是如何实现的呢?下面小编给大家带来了实例代码,对PHP仿qq空间或朋友圈发布动态.评论动态.回复评论.删除动态或评论 ...

  4. 微信朋友圈分享链接的【图片】设置

    微信朋友圈分享链接的[图片]设置 我们在制作好一些网页以后,希望通过微信朋友圈分享给大家.但是发现这样分享到微信朋友圈是没有小图标的.如何在链接前增加吸引人的图片呢?请看下面的制作方法. 在网页的头部 ...

  5. 微信朋友圈长图居中展示。

    微信朋友圈长图居中展示 下载地址:https://download.csdn.net/download/webben/11275077 <!DOCTYPE html> <html&g ...

  6. uniapp分享微信 朋友圈 微博 qq

    封装了一个组件 <template><viewclass="maskBody"v-if="isShow"@click="isShow ...

  7. android 微信朋友圈微博分享

    之前写了一个友盟社会化分享的demo,由于添加分享的平台很多,很多人看不过来(刚开始自己也没的挺绕),后来单独把微信微博拿出来写了一个demo,经测试都能正常使用. demo效果图 首先还是获取友盟的 ...

  8. 如何增加微信朋友圈分享链接的小图片

    我们在制作好一些网页以后,希望通过微信朋友圈分享给大家.但是发现这样分享到微信朋友圈是没有小图标的.如何在链接前增加吸引人的图片呢?请看下面的制作方法. 工具/原料 智能手机 微信 方法/步骤 在网页 ...

  9. 最新emoji表情代码大全_中老年表情包:微信朋友圈早晨问候语带图片 最新早上好问候语动态图片大全...

    不一样的正能量给你不一样的阅读 1.人生难免会遇到风雨和坎坷,对于生活中的诸多不顺,不要心怀不满.怨气冲天,也不必耿耿于怀.一蹶不振.是福是祸,都得面对:是好是坏,都会过去.与其背着包袱弯腰受罪,不如 ...

最新文章

  1. 微服务和容器技术有风险,望君三思而后行
  2. 实现俄罗斯方块遇到的问题及游戏下载
  3. 自己动手写了个 Web 框架,我膨胀了
  4. Spring AOP看这个就够了
  5. 创建XML文件以及XML中的节点和更新Xml文件中的节点的值
  6. C#调用Matlab生成的dll方法
  7. 我的世界java放大化是什么_我的世界:你玩过神奇的放大化种子吗?官方:这些东西非常吃资源...
  8. nlp课程_使用nlp阻止无请求的销售电子邮件的无服务器堆栈中的课程
  9. Various Image/Video Caption(视觉字幕化新任务)
  10. 移动端统计分析工具Firebase、AppsFlyer、Adjust、Flurry、Tap stream、Kochava 、branch不完全对比分析
  11. 一、pytorch环境配置
  12. Paypal国际版网站集成
  13. CDN,P2P,PCDN的区别?
  14. word计算机二级视频教程,计算机二级Office入门及上机实践视频教程之Word篇
  15. 寒假集训三(暴力枚举)2020.01.02(11题)
  16. C语言实现两个整数相除的四舍五入和进一法
  17. 哈佛商学院 MBA 课程介绍
  18. 大数据风控在金融科技中如何应用?难题何在?
  19. 互联网环境下决策支持系统的发展变迁
  20. 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)

热门文章

  1. 【CF718E】Matvey's Birthday BFS+动态规划
  2. vscode 逗号不换行_苹果手机九宫格怎么换行 苹果手机九宫格换行操作步骤
  3. python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...
  4. 中国科大: 那些杀手都很冷[ZT]
  5. 全球与中国棋牌游戏软件市场现状及未来发展趋势
  6. Mysql 死锁和死锁的解决方案
  7. Leetcode 1276:不浪费原料的汉堡制作方案(超详细的解法!!!)
  8. TCGA差异表达分析|2022.5.1更新
  9. Python基础复习--print()函数、转义符、变量命名
  10. 解决花生壳 Aira2 路由器 树莓派中的aira2状态未连接的思路