项目
参考:GitHub - RSMung/RSMungMusic: Android音乐播放器,目前有五个activity,一个service
博客
参考:Android端本地音乐播放器(一)---前言_lvdoujack的博客-CSDN博客
音乐播放图标库
activity_musiclist.xml
AVLoadingIndicatorView控件
本控件学习
该控件用于显示界面跳转时的加载动画
参考:【FastDev4Android框架开发】非常漂亮的进度指示器AVLoadingIndicatorView的使用讲解(十八)_江清清的专栏-CSDN博客_avloadingindicatorview
ListView滚动条
参考:Android ListView滚动条_假装你是大灰狼的专栏-CSDN博客_android listview 滚动条
参考:Android ListView 几个重要属性 - petercao - 博客园
歌曲信息显示区LinearLayout
tools:ignore属性
参考:Android 之 tools:context和tools:ignore两个属性的作用 - RongT - 博客园
android:ellipsize="marquee"属性
在这里实现了 “跑马灯” 形式的音乐信息轮播功能
参考:android:ellipsize的使用 - 孤鹤+ - 博客园
focusableInTouchMode属性
参考:android focusableInTouchMode属性_韶羲的IT之路-CSDN博客_android:focusableintouchmode
(4)include标签
用于重用layouts布局
参考:https://segmentfault.com/a/1190000012210998
activity_song_detail.xml
Toolbar工具栏
1. navigationIcon属性
功能:设置工具栏图标
2. mipmap和drawable的区别
3. mipmap使用技巧(怎么确定图片dpi级别)
AndroidManifest.xml
activity
1. android:exported属性
属性详解:android:exported 属性详解 - 一点点征服 - 博客园
DisplayAcitivity.java
内部类ScanMusicTask(线程类 用于扫描本地音乐)
1. 弱引用类WeakReference
使用位置:ScanMusicTask类中定义了一个该类的对象
参考:Java弱引用(WeakReference)的理解与使用 - 写代码的地方 - 博客园
2. try后面加括号(什么作用)
使用位置:doInBackgroud函数中
参考:java的try后面跟括号_及时雨的csdn-CSDN博客_java try 括号
SongDetailActivity.java
成员变量
1. GramophoneView(唱片播放视图)
功能:Android自定义View实现仿网易音乐唱片播放效果
参考:https://www.jb51.net/article/137984.htm
函数updateBackground
1. Platte类(调色板)
功能:设置布局主题,编辑专辑封面等
参考:Android Support Palette使用详解 - SilentKnight - 博客园
MungNotification.java(在Service包中)
函数notifyPlay(用于显示通知)
1. context.startForeground()
功能:启动前台服务
参考:Android Foreground Service (前台服务) - 灰色飘零 - 博客园
MusicService.java(在Service包中)
函数update_progress
1. Java Timer和TimerTask的配合使用
功能:实现 “后台进程定时执行指定任务”
参考:Java Timer(定时器)_junkai_L-CSDN博客_java timer
函数player_start
功能:定时发送广播更新歌曲进度
1. MediaPlayer的使用
主要了解:MediaPlayer使用时调用不同函数的顺序和作用