记一下自己在项目中用到的歌词控件实现思路
控件效果类似于目前网易云播放器的歌词显示,大概是这样:
网易云歌词效果
控件支持:
正在播放的歌词高亮显示
随进度自动滚动
可以手动滑动歌词,显示indicator(该句进度,横线,播放按钮)
点击indicator的播放按钮可以跳转至所选中行播放
下面开始
一、 歌词的处理
歌词的处理这里不多介绍,网上有很多分析的文章,感兴趣的朋友可以去看一下。这一步骤主要是将服务器返回给我们的歌词字符串解析为我们可用的List,然后设置给我们的控件:
设置歌词
其中,LrcRow是我们解析好的每一行歌词的实体类,该类包含一句歌词的内容,起始时间,总时长等信息
二、 控件分析
观察上面效果,可以看出,控件主要由以下三部分组成:
高亮歌词
普通歌词
indicator
那么我们先不考虑实现滑动效果之类,先考虑如何将这几部分成功画出?
为了画出以上三部分,需要的对象: