2012-04-02 64 views
1

我正在從網絡上傳送歌曲。我製作了Customized Seek Bar,但我無法在應用程序中設置輔助進度欄。我附上我的代碼。請讓我知道我可能犯了什麼錯誤。在定製SeekBar中設置二次進度時的困難

這是我custom_seek_bar.xml

<?xml version="1.0" encoding="UTF-8"?> 

<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
    android:id="@android:id/background"> 
    <shape> 
     <corners 
      android:radius="10dip" /> 
     <stroke 
      android:width="4dip" 
      android:color="#ff000000" /> 
     <gradient 
      android:startColor="#ff734B35" 
      android:centerColor="#ff8A6249" 
      android:centerY="0.50" 
      android:endColor="#ff91694F" 
      android:angle="270" /> 
    </shape> 
</item> 
<item 
    android:id="@android:id/secondaryProgress"> 
    <clip> 
     <shape> 
      <corners 
       android:radius="10dip" /> 
      <stroke 
      android:width="4dip" 
      android:color="#ff000000" /> 
      <gradient 
       android:startColor="#ff734B35" 
       android:centerColor="#ff8A6249" 
       android:endColor="#ff91694F" 
       android:angle="270" /> 
     </shape> 
    </clip> 
</item> 
<item 
    android:id="@android:id/progress"> 
    <clip> 
     <shape> 
      <corners 
       android:radius="10dip" /> 
      <stroke 
      android:width="4dip" 
      android:color="#ff000000" /> 
      <gradient 
       android:startColor="#432011" 
       android:endColor="#ff4A2514" 
       android:angle="90" /> 
     </shape> 
    </clip> 
</item> 

這是我styles.xml

<style name="CustomSeekBar" parent="android:Widget.SeekBar"> 
     <item name="android:progressDrawable">@drawable/custom_seek_bar</item> 
     <item name="android:thumbOffset">0dip</item> 
</style> 

我已經宣佈它在playing.xml

<SeekBar 
      android:id="@+id/seekBar1" 
      style="@style/CustomSeekBar" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="17dp" 
      android:layout_marginRight="15dp" 
      android:secondaryProgress="100" 
      android:thumb="@drawable/point" /> 

這是我的java文件:

SeekBar songControl, songControl1; 
songControl = (SeekBar) view.findViewById(R.id.seekBar1); 
songControl.setEnabled(false); 
txt_Timer = (TextView) view.findViewById(R.id.text_start_time); 
txt_stop_timer = (TextView) view.findViewById(R.id.text_stop_time); 
songControl.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, 
       boolean fromUser) { 
      // TODO Auto-generated method stub 

      Log.d("Progres changed", "" + progress); 

      try { 

       if (mediaPlayer.isPlaying()) { 
        int seconds = (int) (progress/1000) % 60; 
        int minutes = (int) ((progress/(1000 * 60))); 
        txt_Timer.setText("" + minutes + ":" + seconds); 
        if (fromUser) { 
         mediaPlayer.seekTo(progress); 
         songControl.setProgress(progress); 

        } 
       } else 
        songControl.setProgress(progress); 

      } catch (Exception e) { 
       // TODO: handle exception 
       e.printStackTrace(); 
      } 

     } 
    }); 
@Override 
public void onBufferingUpdate(MediaPlayer mp, int percent) { 
    // TODO Auto-generated method stub 
    Log.i("Main Activity", "Progress" + percent); 

    songControl.setSecondaryProgress(percent); 
    songControl.setBackgroundColor(Color.BLUE); 
} 

這一切後我沒有錯誤,但在播放歌曲,我不SeekBar得到二次進度條。我懷疑問題可能在Custom_seek_bar.xml,但不能看到我做錯了什麼。

回答

1

你的xml沒有錯誤。您沒有看到二級進度欄,因爲二級進度的color與背景相同。所以改變你的背景或二次進步的顏色,以得到你想要的!