类似QQ空间,微信朋友圈,微博主页等,展示图片的九宫格控件
类似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空间,微信朋友圈,微博主页等,展示图片的九宫格控件相关推荐
- h5移动端,类似qq空间、朋友圈不规则图片显示适配功能
前言 最近再做个H5移动端社交类型项目的时候,里面有一块 类似朋友圈.qq空间展示的模块,开发的时候发现了一个问题,就是展示用户上传的图片,因为用户上传的图片 可能是相机拍的,可能是截图.可能是网上找 ...
- php mysql仿微信朋友圈评论表设计_PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)...
我们大部分人都发过动态,想必都知道发动态.回复评论.删除动态的整个过程,那么作为初学者,要模仿这些功能有点复杂的,最起码表的关系得弄清楚~~ 先把思路理一下: (1)用户登录,用session读取当前 ...
- php 朋友圈留言,php实例-PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)...
我们大部分人都发过动态,想必都知道发动态.回复评论.删除动态的整个过程,那么这个功能是如何实现的呢?下面小编给大家带来了实例代码,对PHP仿qq空间或朋友圈发布动态.评论动态.回复评论.删除动态或评论 ...
- 微信朋友圈分享链接的【图片】设置
微信朋友圈分享链接的[图片]设置 我们在制作好一些网页以后,希望通过微信朋友圈分享给大家.但是发现这样分享到微信朋友圈是没有小图标的.如何在链接前增加吸引人的图片呢?请看下面的制作方法. 在网页的头部 ...
- 微信朋友圈长图居中展示。
微信朋友圈长图居中展示 下载地址:https://download.csdn.net/download/webben/11275077 <!DOCTYPE html> <html&g ...
- uniapp分享微信 朋友圈 微博 qq
封装了一个组件 <template><viewclass="maskBody"v-if="isShow"@click="isShow ...
- android 微信朋友圈微博分享
之前写了一个友盟社会化分享的demo,由于添加分享的平台很多,很多人看不过来(刚开始自己也没的挺绕),后来单独把微信微博拿出来写了一个demo,经测试都能正常使用. demo效果图 首先还是获取友盟的 ...
- 如何增加微信朋友圈分享链接的小图片
我们在制作好一些网页以后,希望通过微信朋友圈分享给大家.但是发现这样分享到微信朋友圈是没有小图标的.如何在链接前增加吸引人的图片呢?请看下面的制作方法. 工具/原料 智能手机 微信 方法/步骤 在网页 ...
- 最新emoji表情代码大全_中老年表情包:微信朋友圈早晨问候语带图片 最新早上好问候语动态图片大全...
不一样的正能量给你不一样的阅读 1.人生难免会遇到风雨和坎坷,对于生活中的诸多不顺,不要心怀不满.怨气冲天,也不必耿耿于怀.一蹶不振.是福是祸,都得面对:是好是坏,都会过去.与其背着包袱弯腰受罪,不如 ...
最新文章
- 微服务和容器技术有风险,望君三思而后行
- 实现俄罗斯方块遇到的问题及游戏下载
- 自己动手写了个 Web 框架,我膨胀了
- Spring AOP看这个就够了
- 创建XML文件以及XML中的节点和更新Xml文件中的节点的值
- C#调用Matlab生成的dll方法
- 我的世界java放大化是什么_我的世界:你玩过神奇的放大化种子吗?官方:这些东西非常吃资源...
- nlp课程_使用nlp阻止无请求的销售电子邮件的无服务器堆栈中的课程
- Various Image/Video Caption(视觉字幕化新任务)
- 移动端统计分析工具Firebase、AppsFlyer、Adjust、Flurry、Tap stream、Kochava 、branch不完全对比分析
- 一、pytorch环境配置
- Paypal国际版网站集成
- CDN,P2P,PCDN的区别?
- word计算机二级视频教程,计算机二级Office入门及上机实践视频教程之Word篇
- 寒假集训三(暴力枚举)2020.01.02(11题)
- C语言实现两个整数相除的四舍五入和进一法
- 哈佛商学院 MBA 课程介绍
- 大数据风控在金融科技中如何应用?难题何在?
- 互联网环境下决策支持系统的发展变迁
- 微信H5页面前端开发,大多数人都会遇到的几个兼容性坑(转载)
热门文章
- 【CF718E】Matvey's Birthday BFS+动态规划
- vscode 逗号不换行_苹果手机九宫格怎么换行 苹果手机九宫格换行操作步骤
- python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...
- 中国科大: 那些杀手都很冷[ZT]
- 全球与中国棋牌游戏软件市场现状及未来发展趋势
- Mysql 死锁和死锁的解决方案
- Leetcode 1276:不浪费原料的汉堡制作方案(超详细的解法!!!)
- TCGA差异表达分析|2022.5.1更新
- Python基础复习--print()函数、转义符、变量命名
- 解决花生壳 Aira2 路由器 树莓派中的aira2状态未连接的思路