android开发手记之音乐播放器(五)——播放界面_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > android开发手记之音乐播放器(五)——播放界面

android开发手记之音乐播放器(五)——播放界面

 2010/11/19 9:20:04  韶华无限  http://357251206-qq-com.javaeye.com  我要评论(0)
  • 摘要:播放界面做的最不完善,需要在接下来的日子里一步一步完善,播放界面如下:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android
  • 标签:android开发音乐播放器
播放界面做的最不完善,需要在接下来的日子里一步一步完善,播放界面如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background"
    >
<LinearLayout 
	android:orientation="horizontal"
	android:layout_width="320dip"
	android:layout_height="64dip"
	android:layout_marginTop="5dip"
	>
<ImageView
	android:id="@+id/ImageView01"
	android:layout_width="64dip"
	android:layout_height="64dip"
	android:layout_marginLeft="5dip"
	android:background="@drawable/yinyue"
	>
</ImageView>
<TextView
	android:id="@+id/TextView01"
	android:text=""
	android:layout_width="240dip"
	android:layout_height="50dip"
	android:layout_marginLeft="10dip"
	android:layout_marginRight="10dip"
	android:layout_marginTop="15dip"
	>
</TextView>
</LinearLayout>
<LinearLayout
	android:orientation="horizontal"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
	android:layout_marginTop="10dip"
	>
<ImageButton 
	android:id="@+id/ImageButton01"
	android:layout_width="45dip"
	android:layout_height="45dip"
	android:layout_marginLeft="5dip"
	android:background="@drawable/start_button" 
	>
</ImageButton>
<ImageButton
	android:id="@+id/ImageButton02"
	android:layout_width="45dip"
	android:layout_height="45dip"
	android:layout_marginLeft="5dip"
	android:background="@drawable/fron_button"
	>
</ImageButton>
<ImageButton
	android:id="@+id/ImageButton03"
	android:layout_width="45dip"
	android:layout_height="45dip"
	android:layout_marginLeft="5dip"
	android:background="@drawable/stop_button"
	>
</ImageButton>
<ImageButton
	android:id="@+id/ImageButton04"
	android:layout_width="45dip"
	android:layout_height="45dip"
	android:layout_marginLeft="5dip"
	android:background="@drawable/next_button"
	>
</ImageButton>

<ImageButton 
	android:id="@+id/ImageButton05"
	android:layout_width="90dip"
	android:layout_height="45dip"
	android:layout_marginLeft="25dip"
	android:background="@drawable/list"
	>
</ImageButton>
</LinearLayout>
	
</LinearLayout>

setContentView(R.layout.main);
        			//初始默认第一首歌
        			musicName();//歌曲名字的方法;        			
        	        ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
        	        ImageButton frontButton=(ImageButton)findViewById(R.id.ImageButton02);
        	        ImageButton stopButton=(ImageButton)findViewById(R.id.ImageButton03);
        	        ImageButton nextButton=(ImageButton)findViewById(R.id.ImageButton04);
        	        ImageButton listButton=(ImageButton)findViewById(R.id.ImageButton05);
        	        switch(startPauseButton)
        	        {//0代表暂停状态,1代表播放状态
        	        case 0:
        	        	startButton.setBackgroundResource(R.drawable.start_button);
        	        	break;
        	        case 1:
        	        	startButton.setBackgroundResource(R.drawable.pause_button);
        	        	break;
        	        }
        	        startButton.setOnClickListener(//开始按钮的监听
        	        new OnClickListener()
        	        {
        	        	public void  onClick(View v)
        	        	{
        	        		ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);      	        		
        	        		if(PlayerMusicService.isPlaying())
        	        		{
        	        			startPauseButton=0;  	            		
        	            		PlayerMusicService.pause();
        	            		startButton.setBackgroundResource(R.drawable.start_button);
        	        		}
        	        		else
        	        		{
        	        			startPauseButton=1;
        	        			if(clicknumber==0)
        	        			{
        	        				new Thread()
        	        				{
        	        					public void run()
        	        					{
        	        						playMusic(currentMusic);
        	        					}
        	        				}.start();
        	        				musicName();//歌曲名字的方法;
        	        				startButton.setBackgroundResource(R.drawable.pause_button);
        	        			}
        	        			else if(clicknumber>0)
        	        			{   					        				
        	        				PlayerMusicService.start();
        	        				musicName();//歌曲名字的方法
        	        				startButton.setBackgroundResource(R.drawable.pause_button);
        	        			}
        	        		}
        	        		clicknumber++;// 点击次数增加
        	        	}
        	        }
        	        );
        	        frontButton.setOnClickListener(//上一首歌按钮监听器
        	        new OnClickListener()
        	        {
        				@Override
        				public void onClick(View v) {
        					clicknumber++;// 点击次数增加
        					ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);	        				
        					frontMusic();
        					musicName();//歌曲名字的方法      					
        					startButton.setBackgroundResource(R.drawable.pause_button);
        				}
        	        	
        	        });
        	        stopButton.setOnClickListener(//停止按钮监听器
        	                new OnClickListener(){
        	        			@Override
        	        			public void onClick(View v) {
        	        			clicknumber=0;//点击次数设为0
        	        			PlayerMusicService.stop();
        	        			ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
        	        			startButton.setBackgroundResource(R.drawable.start_button);
        	        			TextView nameTV=(TextView)findViewById(R.id.TextView01);
        	        			nameTV.setText("");
        	        			}
        	                });
        	        nextButton.setOnClickListener(//下一首歌按钮监听器
        	                new OnClickListener(){
        	        			@Override
        	        			public void onClick(View v) {
        	        				clicknumber++;// 点击次数增加
        	        				ImageButton startButton=(ImageButton)findViewById(R.id.ImageButton01);
        	        				nextMusic();
        	        				musicName();//歌曲名字的方法
        	        				startButton.setBackgroundResource(R.drawable.pause_button);
        	        			}
        	                });
        	        listButton.setOnClickListener(//播放列表按钮监听器
        	                new OnClickListener(){
        	        			@Override
        	        			public void onClick(View v) {
        	        				clicknumber++;// 点击次数增加
        	        				hd.sendEmptyMessage(GOMUSCILIST);
        	        			}
        	                });

要播放音乐,就要先获得歌曲信息,在onResume()方法中:
cursor=cr.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,null,null,null,MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

在播放界面中用到几个方法,如下:
//播放相应索引歌曲的方法
    public void playMusic(int index)
    {
    	cursor.moveToPosition(index);
		String path = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
		PlayerMusicService.playMusic(path);
    }
    public void musicName()//设置歌曲名字的方法
    {
    	TextView nameTV=(TextView)findViewById(R.id.TextView01);
    	 nameTV.setTextColor(Color.BLUE);
	     nameTV.setTextSize(20);
	     if(tableContent.length>0)
	     {
	    	 musicName=tableContent[currentMusic][1].trim();
	    	 if(musicName.length()>11)
	     	{ 
	     		musicName=musicName.substring(0, 11)+"...";
	     	}
	 		nameTV.setText(musicName);
	     }
    	
    }
    public void nextMusic()//播放下一首歌曲
    {
    	if(++currentMusic>tableContent.length-1)
		{
			currentMusic=0;
			new Thread()
			{
				public void run()
				{
					playMusic(currentMusic);
				}
			}.start();
		}else
		{
			new Thread()
			{
				public void run()
				{
					playMusic(currentMusic);
				}
			}.start();
		}
    }
    public void frontMusic()//播放上一首播个歌的方法
    {
    	if(--currentMusic<0)
		{
			currentMusic=tableContent.length-1;
			new Thread()
			{
				public void run()
				{
					playMusic(currentMusic);
				}
			}.start();
		}else
		{
			new Thread()
			{
				public void run()
				{
					playMusic(currentMusic);
				}
			}.start();
		}
    }
  • 相关文章
发表评论
用户名: 匿名