Трудность при настройке вторичного прогресса в настраиваемом SeekBar - PullRequest
1 голос
/ 02 апреля 2012

Я работаю над потоковой передачей песни из Интернета.Я сделал Customized Seek Bar, но не могу установить дополнительный индикатор выполнения в своем приложении.Я приложил свой код.Пожалуйста, дайте мне знать, где я мог ошибиться.

Это мой 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 Ответ

1 голос
/ 09 мая 2012

Нет ошибки в вашем xml. Вы не видели вторичный индикатор выполнения только потому, что color вторичного прогресса совпадает с фоном. Поэтому измените свой фон или дополнительный цвет прогресса, чтобы получить то, что вы хотите!

...