AssNineGridView

仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义)。

写在前面

这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀的框架才整理出来的,希望能够帮助到大家。 该项目是参考了优秀框架:https://github.com/jeasonlzy/NineGridView 修改而成, 调整了个部分源码,使九宫格展示更为合理,喜欢原作的可以去使用。 也希望大家下载体验本项目,个人能力也有限,希望一起学习一起进步。 更多详情,可以参考我的CSDN博客地址:

效果图

九宫格只显示1张图

九宫格只显示2张图

九宫格只显示4张图

九宫格显示9张以上

普通

项目功能

当获取的图片数量超过最大显示的图片数量时,最后一张图片上会显示剩余数量(类似于QQ的动态效果)

使用Adapter模式设置图片

默认增加了图片点击全屏预览效果,并附带预览动画

使用接口加载图片,支持任意的图片加载框架,如 Glide,ImageLoader,Fresco,xUtils3,Picasso 等

整合了PhotoView图片预览

使用接口抽出图片的加载方式,可以方便的将Glide替换成自己喜欢的ImageLoader等

使用代码简单,只需要几行代码

其他功能增加中......

自定义参数设置

属性名称

参数含义

angv_singleImgRatio

只显示一张图片时图片宽高比

angv_gridSpace

网格显示图片时,图片之间的间距,默认3dp

angv_maxSize

最多显示图片的数量,默认最大9张

使用方法

1 导入

方法一

Add it in your root build.gradle at the end of repositories:

allprojects {

repositories {

...

maven { url 'https://jitpack.io' }

}

}

Add the dependency

dependencies {

implementation 'com.github.assion:AssNineGridView:v1.0.2'

}

方法二

下载本项目,将项目中的lib直接导入即可

implementation project(':lib_assninegridview')

2 初始化

在Application中初始化AssNineGridView的图片加载器

AssNineGridView.setImageLoader(new GlideImageLoader());

自定义自己的图片加载器,支持任意的图片加载框架,如 Glide,ImageLoader,Fresco,Picasso 等

public class GlideImageLoader implements AssNineGridView.ImageLoader{

@Override

public void onDisplayImage(Context context, ImageView imageView, String url) {

Glide.with(context).load(url).into(imageView);

}

@Override

public Bitmap getCacheImage(String url) {

return null;

}

}

3 功能实现

xml添加

android:id="@+id/angv"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_marginBottom="8dp"

app:angv_gridSpace="3dp"

app:angv_maxSize="9"

app:angv_singleImgRatio="1" />

java代码(demo中用的recyclerview加载列表) ImageInfo是库中提供的数据Bean,需要两个url,分别表示小图和大图的url,没有大图或者小图,则都赋给相同的Url即可,AssNineGridViewClickAdapter是库中提供的默认实现了点击预览的Adapter

List imageInfos = getImageInfos(position);

holder.angv.setAdapter(new AssNineGridViewClickAdapter(DemoActivity.this, imageInfos));

AssNineGridViewClickAdapter:库中自带的适配器,点击预览大图

private List getImageInfos(int position) {

List imageInfos = new ArrayList<>();

List images = mDatas.get(position).getImages();

for (String url : images){

ImageInfo imageInfo = new ImageInfo();

imageInfo.setBigImageUrl(url);

imageInfo.setThumbnailUrl(url);

imageInfos.add(imageInfo);

}

return imageInfos;

}

如果不想使用预览效果,可以自己继承 AssNineGridViewAdapter 实现其中 onImageItemClick 方法即可。

List imageInfos = getImageInfos(position);

MyAssAdapter assAdapter = new MyAssAdapter(DemoActivity.this, imageInfos);

assAdapter.onImageItemClick(DemoActivity.this, holder.angv, position, imageInfos);

holder.angv.setAdapter(assAdapter);

MyAssAdapter是自定义的适配器,继承AssNineGridViewAdapter

private class MyAssAdapter extends AssNineGridViewAdapter{

private Context mContext;

MyAssAdapter(Context context, List imageInfo) {

super(context, imageInfo);

mContext = context;

}

@Override

public void onImageItemClick(Context context, AssNineGridView angv, int index, List imageInfo) {

super.onImageItemClick(context, angv, index, imageInfo);

//执行点击事件

Toast.makeText(mContext, "条目"+index+":自定义点击效果", Toast.LENGTH_SHORT).show();

}

}

关于

若遇到使用上的问题,请先翻看Issues,或者直接发邮件给我assionhonty@126.com

联系我

android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...相关推荐

  1. Android 实现仿微信朋友圈九宫格图片+NineGridView+ImageWatcher(图片查看:1.预览,2.拖动,3.放大,4.左右滑动,5.长按保存到手机)的功能

    一.测试 实现: 二.添加依赖包: implementation 'androidx.appcompat:appcompat:1.1.0'implementation 'androidx.recycl ...

  2. android 微信朋友圈 全功能,Android仿微信朋友圈文字展开全文功能 Android自定义TextView仿微信朋友圈文字展开全文功能...

    Android自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: android:orientation="vert ...

  3. android 微信朋友圈 全功能,Android自定义TextView仿微信朋友圈文字展开全文功能

    Android自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: android:orientation="vert ...

  4. Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)

    原址: http://blog.csdn.net/zhang3776813/article/details/52092591 /*** 仿微信朋友圈发布动态* 拍照或图库选择 * 压缩图片并保存**/ ...

  5. Android仿微信朋友圈4实现评论动态时输入框和软键盘自动定位到内容下面

    最近做完朋友圈功能后,测试提出一个功能优化,在某些发布的动态下评论时软键盘和输入框遮当内容了,这个用户体验感觉不是很好,于是根据今日头条和其他热门的App评论时软键盘和输入框都是在内容下面.Scrol ...

  6. 仿微信朋友圈【九宫格的实现】

    仿微信朋友圈[九宫格的实现] 标签: 九宫格自定义viewgroup 2017-04-18 18:39  561人阅读  评论(0)  收藏  举报   分类: Android(25)  版权声明:本 ...

  7. Android实现仿微信朋友圈发布动态(拍照、图库选择、照片压缩、显示、保存、缩略图、点击缩略图删除对应文件等)附源码

             原创作品,转载请注明出处:http://blog.csdn.net/zhang3776813/article/details/52092591 最近项目需求中要用到类似微信朋友圈发布 ...

  8. Android 仿微信朋友圈添加图片

    github地址(欢迎下载Demo) https://github.com/zhouxu88/WXCircleAddPic 老习惯,先上图,着急用的朋友,直接带走Demo,先拿来用吧,毕竟老板催的紧, ...

  9. android 仿微信朋友圈 评论,2020年android 仿微信朋友圈 评论

    2020年android 仿微信朋友圈 评论 1.如果有人问我:那些艰难的岁月你是怎么熬过来的?我想我只有一句话回答:我有一种强大的精神力量支撑着我,这种力量名字叫"想死又不敢" ...

最新文章

  1. 4.1.2 数据交换方式
  2. 从源码分析DEARGUI之让怪物随机动起来
  3. python表白-520使用Python实现“我爱你”表白
  4. Python 爬虫篇-利用BeautifulSoup库爬取墨迹天气网的天气信息实例演示,调用墨迹天气api接口获取空气质量
  5. python 路由转发_RabbitMQ之路由键转发消息
  6. 26Java中的多态
  7. c语言程序设计整人,C语言进程间通信练习作品 - 整人小程序之剪切板
  8. Android系统(134)--- Android关于OOM的解决方案 ##OOM
  9. 华为ac控制器web配置手册_AC+AP组建无线网络,解决路由器没地方放,不美观
  10. 需要注意的new Date 时区问题
  11. 一文看懂语音识别 - ASR(基本原理 + 4个实现流程)
  12. Tableau开始试用期后的破解方法
  13. 嵌入式c学习第一步:dev cpp编译器安装
  14. 苹果ipad邮箱找不到服务器,ipad怎么设置qq邮箱?苹果ipad qq邮箱设置教程
  15. 用计算机编纂家谱的作用,家谱软件的比较
  16. 运动世界校园显示服务器异常,运动世界校园为什么成绩异常 成绩异常相关
  17. 实验二 Linux下Vi编辑器的使用
  18. 高光谱遥感图像处理与信息提取综述
  19. 师傅带徒弟学:Python游戏开发引擎cocos2d-python-关东升-专题视频课程
  20. Anaconda Prompt 用法全集

热门文章

  1. idea复制项目导致sources root复用了另一个项目
  2. CAN201 网络编程 笔记
  3. 题解 [LuoguP3426][POI2005]SZA-Template
  4. vue项目无法在IE打开
  5. 中国人工智能学会通讯——AI时代的若干伦理问题及策略 1.1人工智能时代正在加速到来,算法决策开始兴起...
  6. 51单片机模拟串口发送接收数据(不使用SBUF)
  7. 题解_UVA_11134_Fabled Rooks
  8. 基于英雄大作战龙奥的Unity骨骼动画初探
  9. 美团红包饿了么红包CPS小程序+ H5 +推出外卖红包应用,带有后台代码,安装超级简单-源码
  10. Longhorn时代,浏览器的终结?——关于Avalon和XAML