【问题标题】:How can I implement a custom progress bar in Android?如何在 Android 中实现自定义进度条?
【发布时间】:2014-05-17 15:21:38
【问题描述】:

我想实现一个如下所示的自定义进度条:

并且我希望能够在进度条通过每一根垂直线之后做一些事情,并且垂直线的数量应该可以通过编程方式进行自定义。比如播放特定的声音或显示特定的 Toast 或任何东西。

更新:

比方说,基于时间的进度(以秒为单位)和行的秒数相等。例如整个进度是 40 秒,行是在第 10、第 20 和第 30 秒。

【问题讨论】:

  • 进度条代表什么?还有,你是如何更新进度条的?
  • 感谢您的关注,如果有帮助,我确实更新了我的问题。

标签: android progress-bar


【解决方案1】:

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

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();
}

【讨论】:

  • 谢谢,但整个进度是具体的时间秒数,并且行在进度时间的基础上等分。
  • @MiladNekofar 我已经为你更新了我的答案。这更像是你想做的吗?它会每秒更新进度条,并且进度条每秒会沿着相同的量移动。
  • 实际上我想显示部分之间的进度,更像是this
  • 您希望进度条实际显示分界线吗?还是只是为了澄清?
  • 是的,我想显示所有的分界线,并且我希望能够以编程方式更改它们的数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-29
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-06
  • 1970-01-01
相关资源
最近更新 更多