上一节实现了播放的功能,下面实现播放音乐时底部显示对应歌曲信息的功能。
【效果图】
【开发步骤】
1、xml 界面
2、当点击 ListView 中的 item 时,把播放列表和 position 存入 application
3、每当 service 开始播放音乐时,发送自定义广播
4、在Activity 中编写广播接收器接受该广播,获取当前正在播放的歌曲信息,更新界面(注意在 onCreate 及 onDestroy中注册以及取消注册)
5、更新 UI 时,我们需要通过 path 路径,获取 Bitmap
BitmapUtils.loadBitmap(String path,Callback){
异步发送http请求
调用 callback 回调方法 执行后续业务
}
按照开发步骤写代码:
主要布局中 activity_test.xml 中增加
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#ffffff" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:background="#2894FF"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/img_music_thumb"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginRight="10dp"
android:src="@mipmap/ic_launcher" />
<TextView
android:id="@+id/tv_music_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="歌名"
android:textColor="@android:color/white" />
</LinearLayout>
这里的圆形头像用的是 CircleImageView
需要在 build.gradle 中引入依赖
implementation 'de.hdodenhof:circleimageview:3.1.0'
在点击播放歌曲后,底部显示对应歌曲信息,需要知道当前播放的歌曲是哪一首,我们可以存歌曲列表和点击的 position 来确定歌曲,可以用Application 实现
创建 MusicApplication
public class MusicApplication extends Application {
private List<MusicItem> musicList;
private int position;
public static<