Android开发之第一个小项目--我的MP3播放器之主界面的实现(二)

本文介绍了如何在Android中实现一个MP3播放器的主界面,包括显示歌曲列表和播放栏。主界面的播放栏可跳转至播放界面,并能控制音乐播放与暂停。虽然作者原本计划实现歌曲分组和专辑分组功能,但因代码量过大而未实施。界面采用Material Design风格,具有良好的视觉效果。
摘要由CSDN通过智能技术生成

嗯 先上两张图~~
这里写图片描述这里写图片描述
这里两张图片,第一张是列表界面,也是主界面,能显示歌曲界面个下面的播放栏,播放栏点击能进入第二个界面,也能够控制歌曲的播放个暂停。
第二个界面是播放界面,这个界面的解析下一篇说道,这里先列出这里是为了让你们理解这两个界面的关系,好看注释时别弄混了。
其实我还是想实现歌曲分组和专辑分组的,可是到了后面,我发现太多代码写在这个主界面了,不好修改。当时也没什么时间,也就没改了,不过这样看上去还不错。material design的效果看上去还不错。
就是这么多了,我把对代码的解析全写在注释里了,一来,我方便些,二来你们也方便看,如果有什么问题,可以留言给我。

/**
 * AppControl.JUDGE_DESTORY_ONCREATE     这个有时候会失灵的问题还是没解决
 * author:verzqli
 */
public class MainActivity extends AppCompatActivity implements View.OnClickListener, PlatformActionListener {
   

    private Button mainPlaySong;                   //主页的播放/暂停按键
    private ImageView imSongPlaying;                //下面正在播放的歌曲图片
    private List<Song> songList;

    private ListView songListView;                 //歌曲列表显示

    private SongListAdapter songListAdapter;       //歌曲列表适配器

    private Intent intent;                         //跳转activity

    private MainReceiver mainReceiver;             //列表广播接收器

    private int songListPosition = 0;              //选择音乐位置


    private int currentTime;                       //当前播放时间


    private long duration;                        //当前播放歌曲长度


    private LinearLayout linMainButtom;          //列表下正在播放


    private boolean isPlayingBtn;                //判断开始音乐按键

    private ContentValues values;                //存入数据库的歌曲状态

    private Toolbar toolbar;

    private TextView songTitlePlay;

    private TextView songTitleArt;
    private SongBitmapThread songBitmapThread;
    private NotificationManager notificationManager;
    private RemoteViews contentView;
    private Boolean isRealDestroy;
    //更新主页面下面按键状态的变化(即后面如果按了暂停,前面列表这里的图标会改变)
    public static final String SONG_STATE_UPDATE = "com.verzqli.SONG_STATE_UPDATE";
    //更新主页面的按键状态到播放页面中,即主页面如果按了暂停,播放界面的图标会改变
    public static final String SONG_STATE_PRESS = "com.verzqli.SONG_STATE_PRESS";
    //音乐当前时间改变事件
    public static final String MUSIC_CURRENT = "com.verzqli.action.MUSIC_CURRENT";
    //音乐播放长度改变事件
    public static final String MUSIC_DURATION = "com.verzqli.action.MUSIC_DURATION";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ShareSDK.initSDK(this);
        setContentView(R.layout.content_main);
        toolbar = (Toolbar) findViewById(R.id.id_toolbar);
        isRealDestroy = false;
        setSupportActionBar(toolbar);


        toolbar.setNavigationIcon(R.drawable.title_icon);
        /**
         * 这里是主界面右上角的分享功能,用了shareSDK来完成QQ分享
         */
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem menuItem) {
                String msg = "";
                switch (menuItem.getItemId()) {

                    case R.id.action_share:
                        Platform.ShareParams qq = new Platform.ShareParams();
                        qq.setTitle("分享歌曲");
                        qq.setTitleUrl("http://mob.com");
                        qq.setText("给你们分享一首歌:" + songList.get(songListPosition).getTitle());
                        qq.setImageUrl("http://p0.so.qhimg.com/dmt/73_100_/t01d66f2efb44823d25.jpg");
                        qq.setMusicUrl("http://music.baidu.com/search?key=" + songList.get(songListPosition).getTitle());
                        Platform qqq = ShareSDK.getPlatform(MainActivity.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值