实现android自定义进度条

时间:2014-05-17 15:21:38

标签: android progress-bar

我是Android开发的新手,我只是想知道是否有人可以给我一些关于如何实现这样的事情的建议。

我想实现一个类似于this的自定义进度条,我希望能够在进度条传递每条垂直线之后做一些事情,并且可以通过编程方式自定义垂直线的数量。像播放特定声音或显示特定Toast或任何东西的东西。

对不起,如果我的问题很愚蠢,谢谢你的时间。

更新

让我们说,基于时间的进度(以秒为单位)和行数是相等的秒数。例如,整个过程是在40秒,线在10秒,20秒和30秒。

1 个答案:

答案 0 :(得分:0)

您可以设置进度条的最大值:

progressBar.setMax(4); // Or whatever number of notches you want

编辑:这将睡眠1000毫秒(1秒),然后更新进度条。它会不断更新,直到达到最大值。

private void startProgressThread() {
    new Thread(new Runnable() {

        @Override
        public void run() {

            while (progressBar.getProgress() < progressBar.getMax()) {

                // Wait for 1 second
                Thread.sleep(1000);

                progressBar.post(new Runnable() {

                    @Override
                    public void run() {                        
                        progressBar.setProgress(progressBar.getProgress() + 1);

                        // Show your toast or play your sound.
                        Toast.makeText(getApplicationContext(), 
                                       "It's been " + progressBar.getProgress() + " seconds.",
                                       Toast.LENGTH_SHORT).show();
                    }

                });

            }

        }

    }).start();
}