全屏时下拉的时候,歌词变成第一排,上划时,歌词编程显示的下一排

歌词在播放的主界面中有显示
播放界面是MediaPlaybackActivity
这个类实现了LRC.PositionProvider接口

查看activity的相关布局文件
在这个布局中显示歌词部分
整个linearlayout的visibility为gone属性,歌词由自定义的view 继承ListView生成一个LyricListView来装载,TextView中显示当没有歌词信息的时候所需要显示的提示文字。

关于歌词部分的包 ,前两个文件夹是桌面组件,text文件夹中MovementMethod提供对组件控制行为的接口
Widget文件夹中,MusicIntent提供一些静态常量字符串,TextView作为自定义View继承自View,展示并提供给用户可以编辑的text。

LRC.java 歌词对象。其中包含的变量有一些基本信息,歌曲名,歌手名,专辑名,当前播放行的歌词的索引值,当前显示的最后一行歌词的索引值。等等

Offset对象用于存储偏移量时间和对歌词的指针
两个成员变量time是播放时间,lrcInd是歌词的行数
Offset重写了equals方法,判断播放时间一致时,两个Offset对象相等。

PositionProvider接口,提供获取时间和位置的方法。

LRC重写的toString方法

返回的字符串的格式为先输出基本信息,然后每行输出时间与歌词内容。

LRCFormatException.java
继承RuntimeException ,提供了不同参数的构造方法。

LRCParser.java
作为歌词的解析器
提供从文件解析歌词的方法 parseFromFile().
1.在解析歌词的方法下首先运行isValidLRCFile()方法。判断路径下的文件是否是合法LRC歌词文件,具体判断方式为文件路径是否为空,文件是否存在,是否可读,是否正确的格式。
2.判断文件是否valid之后,使用io流读入内存
3.destFile的file文件作为最后的文件,将目标路径的歌词文件进行toUtf()方法改变文件的编码格式,具体格式LyricConstants.TEXT_UTF_ENCODING为已定义的常量,返回的文件由destFile保存。最后由一个参数的parseFromFile().方法返回LRC对象。

LyricConstants.java
存储常量

StringConstant.java
存储一些字符串常量

LyricDataBean.java
存储歌词信息的个体,包括歌手,歌名,歌词内容,歌词播放状态
带有获取文件名,判断存储空间,保存歌词的方法。

LyricListView extends ListView implements OnItemLongClickListener
作为显示歌词的ListView,实现长点击监听,本来是实现歌词时间的调整,全部被注释掉。
主要在LyricsAdapter extends BaseAdapter 中设置歌词的显示方式。

在触摸事件中实现歌词的滑动。
removeLycScroll();当手指按下时,歌词停止滚动、

lyricHandler会处理手指抬起时候的方法,msg.what = LyricConstants.LYRIC_SCROLL.
抬起手指时做的是界面滚回当前播放行的行为。

在MediaPlaybackActivity中,mList作为歌词的载体存在。

通过判断歌词文件是否存在选择是否显示LyricListView控件。
当选择不显示歌词时会显示其他信息。通过boolean类型的visiable决定。

由LyricIcon设置的监听事件,用icon来选择是否显示完整的歌词。

LyricListView的start方法开始

在playLrc之前需要先setLrc,将boolean类型的ready设置为true。

对歌词显示的更新,通过判断下一首是否有歌词,在歌曲结束后设置歌词不同的显示类型。

这个方法会在屏幕旋转时调用

当下拉时,curLrc = mAdapter.getCount();
当上滑时,curLrc = curLrc = -1;
在lyricHandler中,

上划后,LYRIC_SEEK_DOWN
下拉后,LYRIC_SEEK_UP

LyricHandler中的处理,拖动歌词后的滑动取决于mAutoSeekOffset

在layoutChildren中修改mAutoSeekOffset的值就可以改变歌词滑动的位置

【Music】横屏歌词显示效果不好相关推荐

  1. android仿酷狗界面,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    简介 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  2. android 渐变歌词,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  3. android歌词效果,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  4. Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果

    引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...

  5. 自定义LyricView实现歌词显示控件

    声明:本博客转载自郭霖微信公众号,优秀博客值得多次转播. 地址http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236950&a ...

  6. HLK-W801-LVGL8之横屏显示

    HLK-W801-LVGL8之横屏显示 前言 剖析正常竖屏显示 剖析横屏显示 显示效果 前言 前几天已经完成了关于W801移植LVGL,实现效果如下图所示: ' 图片是竖屏显示的,因为屏幕就是240x ...

  7. 『HTML5梦幻之旅』 - 跟随歌曲显示当前歌词

    好像哪位老师曾说过,音乐是世界通用语言.是的,听不懂英文,但总能欣赏英文歌曲吧. 很早以前就想做个音乐播放器,但是由于跟随歌曲显示当前歌词的效果一直实现不了,所以我的想法一直无法实现.不过,最近创意不 ...

  8. 不用叫方文山!AI 能拯救杰伦的土味歌词

    硅谷Live / 实地探访 / 热点探秘 / 深度探讨 前两天,当小探第一次听到周杰伦的<不爱我就拉倒>时,虽然做好了心理准备,但还是被歌词里愉快的乡土气息给震到了: "哥练的胸 ...

  9. Android适配难题全面总结

    此文章转载至http://blog.csdn.net/lpjishu/article/details/53465996点击打开链接 支持多种屏幕 Android 可在各种具有不同屏幕尺寸和密度的设备上 ...

最新文章

  1. java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解
  2. Atitit 大json文件的结构化查看解决方案,高性能的jsonview  attilax总结.docx
  3. 给喜欢写博、乐于交流的你们!
  4. 前端面试题整理(css)
  5. SpringBoot默认的错误处理机制
  6. 织梦根目录感染abc.php,织梦SEO优化:织梦dedecms根目录下robots.txt文件设置详解! - 张俊SEO...
  7. 【Android开发艺术探索】RemoteViews
  8. java中bin和src文件夹_编译src中的所有文件?
  9. cocos2d-html5 sprite打印宽高都为0的问题
  10. VBA读excel写xml
  11. 新加坡全面开放边境,畅游畅游《摘金奇缘》新加坡地标性景点
  12. Facebook新模型SEER|图像预训练的内卷
  13. Java基础-数组深入之经典案例实现-点名器
  14. Linux 命令和参数 英文全称
  15. 友友球捕获率_口袋妖怪精灵球大科普,大师球能捕捉创世神吗?
  16. spss怎样使用计算机,spss如何进行反向计分?
  17. 一种新的测量设备给现代企业带来质的突破 直线度测量仪
  18. Matlab如何在一个Figure画两个Legend
  19. AVP-SLAM算法学习
  20. 智能优化算法——免疫算法求解选址问题(PythonMatlab实现)

热门文章

  1. 【storybook】你需要一款能在独立环境下开发组件并生成可视化控件文档的框架吗?(一)
  2. 使用 JavaScript 的响应式计数器动画
  3. 讲解:共享显卡禁用后显示器暗屏怎么办
  4. ubuntu上mysql的坑
  5. HttpURLConnection和httpclient添加代理IP和端口
  6. [转载]权衡 Apache Geronimo EJB 事务选项,第 3 部分: 综合所有事务
  7. 乐优商城学习笔记十五-搜索微服务(三)
  8. 考研英语(高级阅读)补充习题
  9. 塑胶模具运水如何设计,非常详细!!!
  10. 局部对比度结合区域显著性红外弱小目标检测