欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Android自定义ViewGroup实现朋友圈九宫格控件

程序员文章站 2022-06-17 11:01:47
一、简介最近项目里有个类似微信朋友圈的九图控件的需求,github找了一下,发现都不太满足需求,我需要单张图片的时候可以按照图片宽高比列在一定范围内自适应,而大多开源项目单张图片也是一个小正方形,所以...

一、简介

最近项目里有个类似微信朋友圈的九图控件的需求,github找了一下,发现都不太满足需求,我需要单张图片的时候可以按照图片宽高比列在一定范围内自适应,而大多开源项目单张图片也是一个小正方形,所以,干脆自己动手写一个

1.1、效果图如下

Android自定义ViewGroup实现朋友圈九宫格控件

1.2、主要功能如下

1:单张图片的时候支持按照图片宽高比列在设定区域内自适应

2:adapter方式绑定数据和ui

3:图片点击事件回调

4:设置图片间隔大小

5:*通过glide设置imageview圆角效果

二、使用

2.1、自定义属性如下

2.2、布局中使用自定义nineimagelayout

2.3、adapter方式绑定数据和ui

其中glide.asbitmap是为了计算图片宽高,如果后台有返回图片的宽高可以省略这一步,直接setsingleimage(width, height,imageview),

ps:如果可以建议后台返回图片宽高,这样可以避免单张图片的时候控件高度跳屏,比如我限制单张图片宽高在200dp范围,要展示宽1000px高500px的时候,在图片未加载完成时控件宽高为200dp,图片加载完成后高度变为100dp,会有一个不好的用户体验,所以建议上传图片的时候记录图片宽高信息

2.4、列表里面使用

页面放一个recyclerview

item布局如下

activity中构造一下测试数据,大致代码如下

myadapter中设置数据

三、源码地址

具体自定义nineimagelayout过程,可以查看nineimagelayout

四、总结

到此这篇关于android自定义viewgroup实现朋友圈九宫格控件的文章就介绍到这了,更多相关android朋友圈九宫格控件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!