如何在Android中将Seekbar作为seekBar以及progressBar同时使用?

问题描述:

我打算为我的应用程序编写自定义媒体控制器。我打算使用seekbar来寻找和展示进展。试图实现这一点。如何在Android中将Seekbar作为seekBar以及progressBar同时使用?

有没有人有这样的实施,或者我在错误的道路上?

最后我想通了!

,我想出了这样的解决方案:

首先设置最大进步搜索条的视频

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

太棒了!但当视频结束,我想播放'videoView.start()'它再次seekBar不工作,如何解决这个问题? –

您设置了seconday progress

不,你在正确的轨道上。它非常适合显示诸如下载进度和流(媒体)的当前位置之类的内容。

+0

感谢您的答复。 但我正在使用二级进度显示流量。 我在下面发表我的想法。 –