最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android音樂(lè)播放器制作 加入控制臺(tái)(三)

 更新時(shí)間:2017年02月24日 17:17:39   作者:段煉Android  
這篇文章主要為大家詳細(xì)介紹了Android音樂(lè)播放器的制作方法,如何加入控制臺(tái),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

Android音樂(lè)播放器的運(yùn)行效果

這篇博客還是接著上一篇Android音樂(lè)播放器制作寫(xiě)的,沒(méi)看過(guò)的可以去看看。

其中這個(gè)效果(圓形ImageView和控件勻速旋轉(zhuǎn)):

我前面的博客中寫(xiě)到過(guò)我就不一一細(xì)說(shuō)了:
圖片變成圓形:android圖片處理,讓圖片變成圓形
旋轉(zhuǎn):android圖片處理:讓圖片一直勻速旋轉(zhuǎn)
文字跑馬燈:TextView的跑馬燈效果以及TextView的一些屬性

具體實(shí)現(xiàn)

首先是布局文件中添加了如下代碼,這些代碼就是實(shí)現(xiàn)控制臺(tái)的,給整體設(shè)置了一個(gè)invisible,為了讓他點(diǎn)擊有音樂(lè)播放的時(shí)候控制臺(tái)才顯示出來(lái):

<RelativeLayout 
  android:id="@+id/main_control_rl" 
  android:layout_width="match_parent" 
  android:layout_height="90dp" 
  android:layout_alignParentBottom="true" 
  android:background="@drawable/bottom_control_shape" 
  android:visibility="invisible"> 
 
  <com.duanlian.mymusicplayerdemo.view.CircleImageView 
   android:id="@+id/control_imageview" 
   android:layout_width="65dp" 
   android:layout_height="65dp" 
   android:layout_centerVertical="true" 
   android:layout_marginLeft="10dp" 
   android:src="@mipmap/duanlian" /> 
 
  <TextView 
   android:id="@+id/control_singer" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:layout_marginLeft="40dp" 
   android:layout_marginTop="5dp" 
   android:layout_toRightOf="@+id/control_imageview" 
   android:text="歌手名" 
   android:textSize="15sp" /> 
  /> 
 
  <TextView 
   android:id="@+id/control_song" 
   android:layout_width="150dp" 
   android:layout_height="wrap_content" 
   android:layout_marginLeft="15dp" 
   android:layout_marginTop="5dp" 
   android:singleLine="true" 
   android:ellipsize="marquee" 
   android:marqueeRepeatLimit="marquee_forever" 
   android:layout_toRightOf="@+id/control_singer" 
   android:text="歌曲的名字是不是很長(zhǎng)" 
   android:textSize="16sp" /> 
 
  <RelativeLayout 
   android:layout_width="match_parent" 
   android:layout_height="50dp" 
   android:layout_alignParentBottom="true" 
   android:layout_marginBottom="10dp" 
   android:layout_marginLeft="10dp" 
   android:layout_toRightOf="@+id/control_imageview"> 
 
   <Button 
    android:id="@+id/playing_btn_previous" 
    android:layout_width="50dp" 
    android:layout_height="50dp" 
    android:layout_marginLeft="30dp" 
    android:background="@drawable/last_select" 
    android:onClick="control" /> 
 
   <Button 
    android:id="@+id/playing_btn_pause" 
    android:layout_width="55dp" 
    android:layout_height="55dp" 
    android:layout_centerHorizontal="true" 
    android:background="@drawable/play_press" 
    android:onClick="control" /> 
 
   <Button 
    android:id="@+id/playing_btn_next" 
    android:layout_width="50dp" 
    android:layout_height="50dp" 
    android:layout_alignParentRight="true" 
    android:layout_marginRight="30dp" 
    android:background="@drawable/next_select" 
    android:onClick="control" /> 
 
  </RelativeLayout> 
 </RelativeLayout> 

其中的

<com.duanlian.mymusicplayerdemo.view.CircleImageView 
   android:id="@+id/control_imageview" 
   android:layout_width="65dp" 
   android:layout_height="65dp" 
   android:layout_centerVertical="true" 
   android:layout_marginLeft="10dp" 
   android:src="@mipmap/duanlian" /> 

這個(gè)是自定義圓形圖片,之前的博客已經(jīng)說(shuō)過(guò)了,具體可以去看,然后控制的這種效果是背景添加了一個(gè)shap

代碼如下:

<?xml version="1.0" encoding="utf-8"?> 
<shape 
 xmlns:android="http://schemas.android.com/apk/res/android"> 
 <corners android:radius="200.0dip" /> 
 <solid android:color="#84C3D1" /> 
 <stroke android:width="1.0dip" android:color="#ffff6000" /> 
</shape> 

點(diǎn)擊上一曲下一期的變化效果:

添加了一個(gè)點(diǎn)擊的selector:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
 
 <item android:state_window_focused="false" android:drawable="@drawable/last_normal" /> 
 <item android:state_focused="true" android:drawable="@drawable/last_normal" /> 
 <item android:state_pressed="true" android:drawable="@drawable/last_press" /> 
 
</selector> 

布局文件搞定,下面是代碼中的實(shí)現(xiàn)
首先就是聲明的控件和一些變量增加了 這幾個(gè):

private int playPosition;//當(dāng)前播放歌曲的序號(hào) 
 private boolean IsPlay = false;//是否有歌曲在播放 
 private Button playPause;//暫停和播放按鈕 
 private TextView song;//歌曲名 
 private TextView singer;//歌手名 
 private ImageView imageView;//控制臺(tái)的圖片 
 private Animation animation;//動(dòng)畫(huà) 

點(diǎn)擊ListView的一下改變:

mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
   @Override 
   public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
    //創(chuàng)建一個(gè)播放音頻的方法,把點(diǎn)擊到的地址傳過(guò)去 
    //list.get(i).path這個(gè)就是歌曲的地址 
    play(list.get(i).path); 
    ////播放暫停按鈕圖片變成播放狀態(tài) 
    playPause.setBackgroundResource(R.drawable.pause_press); 
    //把當(dāng)前點(diǎn)擊的item的position拿到,知道當(dāng)前播放歌曲的序號(hào) 
    playPosition = i; 
    //播放音樂(lè)的時(shí)候把是否在播放賦值為true 
    IsPlay = true; 
    //點(diǎn)擊item讓控制臺(tái)顯示出來(lái) 
    findViewById(R.id.main_control_rl).setVisibility(View.VISIBLE); 
 
   } 
  }); 

然后就是幾個(gè)button的點(diǎn)擊事件了:

/** 
 * 底部控制欄的點(diǎn)擊事件 
 * 
 * @param view 
 */ 
 public void control(View view) { 
  switch (view.getId()) { 
   case R.id.playing_btn_previous://上一曲 
    //如果播放歌曲的序號(hào)小于或者等于0的話點(diǎn)擊上一曲就提示已經(jīng)是第一首了 
    if (playPosition <= 0) { 
     Toast.makeText(MainActivity.this, "已經(jīng)是第一首歌了", Toast.LENGTH_SHORT).show(); 
    } else { 
     //讓歌曲的序號(hào)減一 
     playPosition--; 
     //播放 
     play(list.get(playPosition).path); 
     playPause.setBackgroundResource(R.drawable.pause_press); 
    } 
    break; 
   case R.id.playing_btn_pause://暫停和播放 
    if (IsPlay == false) { 
     //播放暫停按鈕圖片變成播放狀態(tài) 
     playPause.setBackgroundResource(R.drawable.pause_press); 
     //繼續(xù)播放 
     mediaPlayer.start(); 
     imageView.startAnimation(animation); 
     IsPlay = true;//是否在播放賦值為true 
     animation.start(); 
     Toast.makeText(MainActivity.this, "播放" + list.get(playPosition).song, Toast.LENGTH_SHORT).show(); 
    } else { 
     //播放暫停按鈕圖片變成暫停狀態(tài) 
     playPause.setBackgroundResource(R.drawable.play_press); 
     //暫停歌曲 
     mediaPlayer.pause(); 
     imageView.clearAnimation();//停止動(dòng)畫(huà) 
     IsPlay = false;//是否在播放賦值為false 
     Toast.makeText(MainActivity.this, "暫停" + list.get(playPosition).song, Toast.LENGTH_SHORT).show(); 
    } 
 
    break; 
   case R.id.playing_btn_next://下一曲 
    //歌曲序號(hào)大于或者等于歌曲列表的大小-1時(shí),讓歌曲序號(hào)為第一首 
    if (playPosition >= list.size() - 1) { 
     playPosition = 0; 
    } else { 
     //點(diǎn)擊下一曲讓歌曲的序號(hào)加一 
     playPosition++; 
    } 
    //播放 
    play(list.get(playPosition).path); 
    //播放暫停按鈕圖片變成播放狀態(tài) 
    playPause.setBackgroundResource(R.drawable.pause_press); 
    break; 
  } 
 
 } 

最后還有設(shè)置歌曲名和歌手名的:

/** 
 * 控制歌曲和歌手TextView的方法 
 */ 
 private void setText() { 
  song.setText(list.get(playPosition).song); 
  song.setSelected(true);//當(dāng)歌曲名字太長(zhǎng)是讓其滾動(dòng) 
  singer.setText(list.get(playPosition).singer); 
 
 } 

就是這個(gè)簡(jiǎn)單

demo下載地址:音樂(lè)播放器

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

石楼县| 鹤峰县| 舒兰市| 嵊州市| 东乌| 邓州市| 荥阳市| 南江县| 松江区| 娄烦县| 特克斯县| 宁远县| 宜兰县| 阿荣旗| 明水县| 清流县| 沾化县| 商丘市| 安阳县| 南溪县| 阿勒泰市| 九龙城区| 侯马市| 沙湾县| 利津县| 宣化县| 梁山县| 广汉市| 满洲里市| 萨迦县| 梧州市| 年辖:市辖区| 祁阳县| 安多县| 玛曲县| 友谊县| 弥渡县| 沙雅县| 邵阳市| 兴国县| 旌德县|