少废话,先看效果
需求分析
在开发中需要实现图文视频信息流的功能,可以参考下面的动图:
上面的动图来自小红书,我们可以发现:整个列表中有图片(多张)以及视频,视频是可以自动播放的。根据需求,我们来需要实现图片标签的功能,这一块我们是参考Instagram的效果。见下图:
很抱歉,gif中没有很好的体现需要实现的效果,那么我就用文字描述一下吧。如果图片上有标签,那么当滑动到图片时,需要显示一个标签的图标,提示用户这张图片上有标签,可以点击图片查看,如果用户不点击图片,4秒后标签自动消失。
看了以上两种效果,现在我们总结一下需要实现的效果:
- 信息的展示(用户名,头像,内容,评论等)
- 滑动控制(滑动控制视频的播放暂停以及图片标签的展示)
- 注意事项
下面我们来一个一个分析,由于是讲实现的思路,所以不会涉及到太多代码。
功能实现
1.信息展示
根据效果图我们可以总结出来:列表总共有两种类型:图片和视频。但是它们之间有相同的部分,比如用户信息的展示,文本内容的展示以及评论等。所以自然我们会想到可以创建一个BaseViewHolder来实现共同的部分。
然后我们在创建展示图片和视频的ViewHolder,这两个ViewHolder主要是用来设置各自的信息。