一.效果实现图
app页面:
项目布局图:
二.视频效果展示
三.功能说明
主页面点击后进入播放页面,播放页面中心为可滑动的音乐列表,底部可对音乐举行播放和暂停
需要实现的功能:
(1)Activity之间的跳转
(2)recycleview的滑动效果
(3)server服务实现音乐播放
四.功能实现
(1)Activity之间的跳转:
设置2个activity,并通过点击button实现activity的跳转
(2)recycleview的滑动效果
1. 添加依赖
- implementation ("androidx.recyclerview:recyclerview:1.3.0")
复制代码 2. 设置 XML 布局
在播放页面的 XML 布局文件中添加 RecyclerView,并编写item相关布局文件的xml
item的xml文件效果图
3.设置数据类和适配器
- 设置数据类:根据需求创建一个数据类,用于存储每个Item的数据。比方,可以创建一个简朴的Java类来表示每个Item的数据。
- 创建适配器:适配器(Adapter)负责将数据集转换成RecyclerView可以展示的视图。适配器需要继承RecyclerView.Adapter类,并实现其三个核心方法:onCreateViewHolder、onBindViewHolder和getItemCount。
数据类代码:
- package com.example.myapplication;
- public class LocalMusicBean {
- private int headId;
- private String song;
- private String singer;
- public LocalMusicBean() {
- }
- public LocalMusicBean(int headId, String song, String singer) {
- this.headId = headId;
- this.song = song;
- this.singer = singer;
- }
- public int getId() {
- return headId;
- }
- public void setId(int headId) {
- this.headId = headId;
- }
- public String getSong() {
- return song;
- }
- public void setSong(String song) {
- this.song = song;
- }
- public String getSinger() {
- return singer;
- }
- public void setSinger(String singer) {
- this.singer = singer;
- }
- }
复制代码 4.在Activity或Fragment中设置RecyclerView
在Activity或Fragment的onCreate方法中,找到RecyclerView控件,并设置其LayoutManager和Adapter
- RecyclerView recyclerView = findViewById(R.id.local_music_rv);
- List<LocalMusicBean> mDatas = new ArrayList<>();
- LocalMusicBean music1= new LocalMusicBean(R.drawable.firework,"firework","Katy Perry");
- LocalMusicBean music2= new LocalMusicBean(R.drawable.gnzw,"光年之外","邓紫棋");
- LocalMusicBean music3= new LocalMusicBean(R.drawable.goodbye,"再见","邓紫棋");
- LocalMusicBean music4= new LocalMusicBean(R.drawable.rbl,"日不落","蔡依林");
- LocalMusicBean music5= new LocalMusicBean(R.drawable.roar,"Roar","Katy Perry");
- LocalMusicBean music6= new LocalMusicBean(R.drawable.wg,"white grey","Xceon");
- LocalMusicBean music7= new LocalMusicBean(R.drawable.withoutyou,"without you","Avicii");
- LocalMusicBean music8= new LocalMusicBean(R.drawable.ld,"last dance","500");
- mDatas.add(music1);
- mDatas.add(music2);
- mDatas.add(music3);
- mDatas.add(music4);
- mDatas.add(music5);
- mDatas.add(music6);
- mDatas.add(music7);
- mDatas.add(music8);
- LocalMusicAdapter localMusicAdapter = new LocalMusicAdapter(this,mDatas);
- LinearLayoutManager layoutManager= new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false);
- recyclerView.setLayoutManager(layoutManager);
- recyclerView.setAdapter(localMusicAdapter);
复制代码 (3)server服务实现音乐播放
server服务代码:
- public class MyService extends Service {
- MediaPlayer mediaPlayer;
- public MyService() {
- }
- @Override
- public int onStartCommand(Intent intent,int flags,int startId){
- mediaPlayer=MediaPlayer.create(this,R.raw.firework);
- mediaPlayer.start();
- Log.d("MusicService","开始播放");
- return super.onStartCommand(intent,flags,startId);
- }
- @Override
- public void onDestroy(){
- Log.d("MusicService","停止播放");
- mediaPlayer.stop();
- super.onDestroy();
- }
- @Override
- public IBinder onBind(Intent intent) {
- // TODO: Return the communication channel to the service.
- throw new UnsupportedOperationException("Not yet implemented");
- }
- }
复制代码 五.出现的题目
在写代码的过程中,大部分题目都是细节没有理解导致的错误,但在把代码传入github时,出现报错kex_exchange_identification: Connection closed by remote host
与github网站连接失败
解决办法:
把现在所使用的网络的dns服务器地点从自动获取改为144.144.144.144
六.总结与改进
本次android开发对我来说是一次全新的体验,打仗开发让我知道该怎样举行多人互助完成一个项目,过程中也有不少的难点与困难。对于本次的app,接下来我会添加新的功能,让recyclerview中的item和底部播放举行联动,并实现点击音乐图片,进入音乐详情页。
七.源代码地点
代码已上传git,下行点击进入
github源码地点
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |