Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<ImageView

android:id=“@+id/play_state_img”

android:background=“@mipmap/list_pause_state”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”/>

<TextView

android:gravity=“center”

android:text=“歌曲信息”

android:ellipsize=“marquee”

android:focusableInTouchMode=“true”

android:focusable=“true”

android:marqueeRepeatLimit=“marquee_forever”

android:singleLine=“true”

android:textColor=“@color/white”

android:id=“@+id/tv_play_song_info”

android:orientation=“vertical”

android:layout_width=“@dimen/dp_150”

android:layout_height=“wrap_content”/>

<androidx.recyclerview.widget.RecyclerView

android:id=“@+id/rv_music”

android:layout_width=“match_parent”

android:layout_height=“0dp”

android:layout_weight=“1”/>

<LinearLayout

android:layout_marginTop=“@dimen/dp_4”

android:orientation=“vertical”

android:background=“@color/half_transparent”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<LinearLayout

android:gravity=“center_vertical”

android:layout_alignParentBottom=“true”

android:orientation=“horizontal”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<TextView

android:id=“@+id/tv_play_time”

android:text=“00:00”

android:layout_marginLeft=“@dimen/dp_4”

android:textSize=“@dimen/sp_14”

android:textColor=“@color/white”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”/>

<SeekBar

android:layout_marginLeft=“@dimen/dp_10”

android:layout_marginRight=“@dimen/dp_10”

android:id=“@+id/time_seekBar”

android:layout_width=“0dp”

android:layout_weight=“1”

android:layout_height=“wrap_content”

android:max=“100”

android:maxHeight=“2dp”

android:minHeight=“2dp”

android:progress=“0”

android:progressDrawable=“@drawable/seekbar_style”

android:thumb=“@drawable/thumb” />

<TextView

android:id=“@+id/tv_total_time”

android:layout_marginRight=“@dimen/dp_4”

android:text=“00:00”

android:textSize=“@dimen/sp_14”

android:textColor=“@color/white”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”/>

<LinearLayout

android:padding=“@dimen/dp_10”

android:gravity=“center”

android:orientation=“horizontal”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<ImageView

android:id=“@+id/btn_previous”

android:background=“@mipmap/icon_previous”

android:layout_width=“@dimen/dp_40”

android:layout_height=“@dimen/dp_40” />

<ImageView

android:layout_marginLeft=“@dimen/dp_20”

android:layout_marginRight=“@dimen/dp_20”

android:id=“@+id/btn_play_or_pause”

android:background=“@mipmap/icon_pause”

android:layout_width=“@dimen/dp_44”

android:layout_height=“@dimen/dp_44” />

<ImageView

android:id=“@+id/btn_next”

android:background=“@mipmap/icon_next”

android:layout_width=“@dimen/dp_40”

android:layout_height=“@dimen/dp_40”/>

item_music_rv_list.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:id=“@+id/item_music”

android:background=“@color/color_transparent_10”

android:foreground=“@drawable/bg_white”

android:orientation=“vertical”

android:layout_marginBottom=“@dimen/dp_1”

android:gravity=“center_vertical”>

<LinearLayout

android:gravity=“center_vertical”

android:orientation=“horizontal”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<LinearLayout

android:gravity=“center_vertical”

android:padding=“10dp”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<TextView

android:id=“@+id/tv_position”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_margin=“2dp”

android:text=“1”

android:textColor=“@color/white”

android:textSize=“16sp” />

<LinearLayout

android:layout_marginLeft=“@dimen/dp_10”

android:orientation=“vertical”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<LinearLayout

android:gravity=“center_vertical”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<TextView

android:id=“@+id/tv_song_name”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”

android:text=“歌曲名”

android:maxLines=“1”

android:textColor=“@color/white”

android:textSize=“@dimen/sp_18” />

<LinearLayout

android:layout_marginTop=“@dimen/dp_4”

android:layout_width=“match_parent”

android:layout_height=“wrap_content”>

<TextView

android:id=“@+id/tv_singer”

android:layout_width=“0dp”

android:layout_weight=“1”

android:text=“歌手”

android:ellipsize=“end”

android:maxLines=“1”

android:layout_height=“wrap_content”

android:textColor=“@color/white”

android:textSize=“14sp” />

<TextView

android:id=“@+id/tv_duration_time”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:layout_marginLeft=“12dp”

android:textColor=“@color/white”

android:text=“时间”

android:textSize=“14sp” />

布局其实没有什么好讲解的,就是显示和隐藏的控制。

样式文件:

rounded_corners.xml 水波纹效果的xml文件

<?xml version="1.0" encoding="utf-8"?>

在bg_white.xml中调用了rounded_corners.xml

bg_white.xml代码如下:

<?xml version="1.0" encoding="utf-8"?>

<ripple xmlns:android=“http://schemas.android.com/apk/res/android”

android:color=“#20000000”

android:drawable=“@drawable/rounded_corners”/>

扫描按钮的背景图

scan_finish_btn_bg_pressed.9

在这里插入图片描述

scan_finish_btn_bg_normal.9

在这里插入图片描述

selector_scan_btn.xml使用上面两个图片的按钮点击样式

<?xml version="1.0" encoding="utf-8"?>

<selector

xmlns:android=“http://schemas.android.com/apk/res/android”>

selector_scan_btn这个样式文件,在activity_main中用到

seekbar_style.xml 进度条样式

<?xml version="1.0" encoding="utf-8"?>

thumb.xml 进度条滑块样式

<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android=“http://schemas.android.com/apk/res/android”

android:shape=“oval”>

<size

android:width=“10dp”

android:height=“10dp” />

<stroke

android:width=“1dp”

android:color=“#40DEF1” />

上面两个关于进度条的样式也在activity_main.xml中用到

然后是values下面的styles.xml文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值