Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android音樂播放器制作(三)加入控制台

Android音樂播放器制作(三)加入控制台

編輯:關於Android編程

運行效果

\   這篇博客還是接著上一篇Android音樂播放器制作寫的,沒看過的可以去看看 其中這個效果(圓形ImageView和控件勻速旋轉): \ 我前面的博客中寫到過我就不一一細說了:  

具體實現

首先是布局文件中添加了如下代碼,這些代碼就是實現控制台的,給整體設置了一個invisible,為了讓他點擊有音樂播放的時候控制台才顯示出來:
 

        

        
        />

        

        

其中的
 
這個是自定義圓形圖片,之前的博客已經說過了,具體可以去看 ,然後控制的這種效果是背景添加了一個shap \
    代碼如下:


    
    
    
  點擊上一曲下一期的變化效果: \ 添加了一個點擊的selector:  


	
	
	

 

  布局文件搞定,下面是代碼中的實現 首先就是聲明的控件和一些變量增加了 這幾個:
 private int playPosition;//當前播放歌曲的序號
    private boolean IsPlay = false;//是否有歌曲在播放
    private Button playPause;//暫停和播放按鈕
    private TextView song;//歌曲名
    private TextView singer;//歌手名
    private ImageView imageView;//控制台的圖片
    private Animation animation;//動畫

點擊ListView的一下改變:
 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView adapterView, View view, int i, long l) {
                //創建一個播放音頻的方法,把點擊到的地址傳過去
                //list.get(i).path這個就是歌曲的地址
                play(list.get(i).path);
                ////播放暫停按鈕圖片變成播放狀態
                playPause.setBackgroundResource(R.drawable.pause_press);
                //把當前點擊的item的position拿到,知道當前播放歌曲的序號
                playPosition = i;
                //播放音樂的時候把是否在播放賦值為true
                IsPlay = true;
                //點擊item讓控制台顯示出來
                findViewById(R.id.main_control_rl).setVisibility(View.VISIBLE);

            }
        });
  然後就是幾個button的點擊事件了:
 /**
     * 底部控制欄的點擊事件
     *
     * @param view
     */
    public void control(View view) {
        switch (view.getId()) {
            case R.id.playing_btn_previous://上一曲
                //如果播放歌曲的序號小於或者等於0的話點擊上一曲就提示已經是第一首了
                if (playPosition <= 0) {
                    Toast.makeText(MainActivity.this, "已經是第一首歌了", Toast.LENGTH_SHORT).show();
                } else {
                    //讓歌曲的序號減一
                    playPosition--;
                    //播放
                    play(list.get(playPosition).path);
                    playPause.setBackgroundResource(R.drawable.pause_press);
                }
                break;
            case R.id.playing_btn_pause://暫停和播放
                if (IsPlay == false) {
                    //播放暫停按鈕圖片變成播放狀態
                    playPause.setBackgroundResource(R.drawable.pause_press);
                    //繼續播放
                    mediaPlayer.start();
                    imageView.startAnimation(animation);
                    IsPlay = true;//是否在播放賦值為true
                    animation.start();
                    Toast.makeText(MainActivity.this, "播放" + list.get(playPosition).song, Toast.LENGTH_SHORT).show();
                } else {
                    //播放暫停按鈕圖片變成暫停狀態
                    playPause.setBackgroundResource(R.drawable.play_press);
                    //暫停歌曲
                    mediaPlayer.pause();
                    imageView.clearAnimation();//停止動畫
                    IsPlay = false;//是否在播放賦值為false
                    Toast.makeText(MainActivity.this, "暫停" + list.get(playPosition).song, Toast.LENGTH_SHORT).show();
                }

                break;
            case R.id.playing_btn_next://下一曲
                //歌曲序號大於或者等於歌曲列表的大小-1時,讓歌曲序號為第一首
                if (playPosition >= list.size() - 1) {
                    playPosition = 0;
                } else {
                    //點擊下一曲讓歌曲的序號加一
                    playPosition++;
                }
                //播放
                play(list.get(playPosition).path);
                //播放暫停按鈕圖片變成播放狀態
                playPause.setBackgroundResource(R.drawable.pause_press);
                break;
        }

    }

最後還有設置歌曲名和歌手名的:
 /**
     * 控制歌曲和歌手TextView的方法
     */
    private void setText() {
        song.setText(list.get(playPosition).song);
        song.setSelected(true);//當歌曲名字太長是讓其滾動
        singer.setText(list.get(playPosition).singer);

    }

就是這個簡單
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved