Как использовать Seekbar в Android в качестве seekBar, а также progressBar одновременно? - PullRequest
10 голосов
/ 11 октября 2011

Я намерен написать собственный медиа-контроллер для моего приложения. Я планировал использовать seekbar для поиска и показа прогресса. Пытаясь реализовать это.

У кого-нибудь есть такая реализация или я не на том пути?

Ответы [ 2 ]

23 голосов
/ 14 октября 2011

Наконец-то я понял это !!

Решение, которое я нашел, было примерно таким:

Прежде всего, установите максимальный прогресс для seekbar как продолжительность видео

videoView.setOnPreparedListener(new OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {

            seekBar.setMax(videoView.getDuration());
            seekBar.postDelayed(onEverySecond, 1000);
        }
    });

Этот исполняемый файл будет продолжать обновлять индикатор выполнения:

private Runnable onEverySecond=new Runnable() {

    @Override
    public void run() {

        if(seekBar != null) {
            seekBar.setProgress(videoView.getCurrentPosition());
        }

        if(videoView.isPlaying()) {
            seekBar.postDelayed(onEverySecond, 1000);
        }

    }
};

И затем setOnSeekBarChangeListener для панели поиска может использоваться для получения пользовательского поиска на носителе.Используя логическое значение fromUser , мы можем определить, был ли это обратный вызов из-за взаимодействия с пользователем или

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {

            if(fromUser) {
                // this is when actually seekbar has been seeked to a new position
                videoView.seekTo(progress);
            }
        }
    });
0 голосов
/ 11 октября 2011

Вы установили второй день прогресса .

Нет, вы на правильном пути.Это очень хорошо для отображения таких вещей, как ход загрузки и текущее местоположение для потоков (медиа).

...