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

我打算为我的应用程序编写一个自定义媒体控制器.我正在计划用seekbar来寻求和表现进步.试图实现这一点.

有没有人有这样的实现或我错误的路径?

解决方法

最后我想出来了!

我想出的解决方案是这样的:

首先,将搜索栏的最大进度设置为视频的持续时间

videoView.setonPreparedListener(new OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {

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

这个runnable将继续更新进度条:

private Runnable onEverySecond=new Runnable() {

    @Override
    public void run() {

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

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

    }
};

然后,用于seekbar的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);
            }
        }
    });

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...