在我们的实际应用中,经常需要用到自定义控件,比如自定义圆形头像,自定义计步器等等,这篇文章主要给大家介绍了关于Android自定义ViewGroup实现朋友圈九宫格控件的相关资料,需要的朋友可以参考下
目录
一、简介 1.1、效果图如下1.2、主要功能如下二、使用 2.1、自定义属性如下2.2、布局中使用自定义NineImageLayout2.3、Adapter方式绑定数据和UI2.4、列表里面使用三、源码地址 四、总结
︾
一、简介
最近项目里有个类似微信朋友圈的九图控件的需求,Github找了一下,发现都不太满足需求,我需要单张图片的时候可以按照图片宽高比列在一定范围内自适应,而大多开源项目单张图片也是一个小正方形,所以,干脆自己动手写一个
1.1、效果图如下
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实现朋友圈九宫格控件的文章