2012-04-02 34 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与背景相同。所以改变你的背景或二次进步的颜色,以得到你想要的!