【Music】横屏歌词显示效果不好
全屏时下拉的时候,歌词变成第一排,上划时,歌词编程显示的下一排
歌词在播放的主界面中有显示
播放界面是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】横屏歌词显示效果不好相关推荐
- android仿酷狗界面,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
简介 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- android 渐变歌词,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- android歌词效果,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- 自定义LyricView实现歌词显示控件
声明:本博客转载自郭霖微信公众号,优秀博客值得多次转播. 地址http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236950&a ...
- HLK-W801-LVGL8之横屏显示
HLK-W801-LVGL8之横屏显示 前言 剖析正常竖屏显示 剖析横屏显示 显示效果 前言 前几天已经完成了关于W801移植LVGL,实现效果如下图所示: ' 图片是竖屏显示的,因为屏幕就是240x ...
- 『HTML5梦幻之旅』 - 跟随歌曲显示当前歌词
好像哪位老师曾说过,音乐是世界通用语言.是的,听不懂英文,但总能欣赏英文歌曲吧. 很早以前就想做个音乐播放器,但是由于跟随歌曲显示当前歌词的效果一直实现不了,所以我的想法一直无法实现.不过,最近创意不 ...
- 不用叫方文山!AI 能拯救杰伦的土味歌词
硅谷Live / 实地探访 / 热点探秘 / 深度探讨 前两天,当小探第一次听到周杰伦的<不爱我就拉倒>时,虽然做好了心理准备,但还是被歌词里愉快的乡土气息给震到了: "哥练的胸 ...
- Android适配难题全面总结
此文章转载至http://blog.csdn.net/lpjishu/article/details/53465996点击打开链接 支持多种屏幕 Android 可在各种具有不同屏幕尺寸和密度的设备上 ...
最新文章
- java map 输入 查询 修改_Mybatis增删改查mapper文件写法详解
- Atitit 大json文件的结构化查看解决方案,高性能的jsonview attilax总结.docx
- 给喜欢写博、乐于交流的你们!
- 前端面试题整理(css)
- SpringBoot默认的错误处理机制
- 织梦根目录感染abc.php,织梦SEO优化:织梦dedecms根目录下robots.txt文件设置详解! - 张俊SEO...
- 【Android开发艺术探索】RemoteViews
- java中bin和src文件夹_编译src中的所有文件?
- cocos2d-html5 sprite打印宽高都为0的问题
- VBA读excel写xml
- 新加坡全面开放边境,畅游畅游《摘金奇缘》新加坡地标性景点
- Facebook新模型SEER|图像预训练的内卷
- Java基础-数组深入之经典案例实现-点名器
- Linux 命令和参数 英文全称
- 友友球捕获率_口袋妖怪精灵球大科普,大师球能捕捉创世神吗?
- spss怎样使用计算机,spss如何进行反向计分?
- 一种新的测量设备给现代企业带来质的突破 直线度测量仪
- Matlab如何在一个Figure画两个Legend
- AVP-SLAM算法学习
- 智能优化算法——免疫算法求解选址问题(PythonMatlab实现)