如何使Progress Bar加载15秒?

时间:2014-04-20 10:39:34

标签: java android progress-bar

代码

progressBar = (ProgressBar) findViewById(R.id.progressBar);
            textView = (TextView) findViewById(R.id.secdelay);
            // Start long running operation in a background thread
            new Thread(new Runnable() {
                public void run() {
                    while (progressStatus < 15) {
                        progressStatus += 1;
                        // Update the progress bar and display the

                        //current value in the text view
                        handler.post(new Runnable() {
                            public void run() {
                                progressBar.setProgress(progressStatus);
                                textView.setText(progressStatus+"/"+progressBar.getMax());
                            }
                        });
                        try {
                            // Sleep for 200 milliseconds.

                            //Just to display the progress slowly
                            Thread.sleep(1500);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }).start();
现在它的加载很好,我想进步吧15ec怎么办?希望你们明白是什么意思。一个15秒的加载进度条,我看到它跳动画,任何方式使它平滑。在此先感谢noob问题对不起只是一个学习者

1 个答案:

答案 0 :(得分:0)

您可以将进度条的最大值设置为15秒* 5 = 75,以便更新较小的“咬伤”。为了更流畅的动画。

然后每200ms更新一次进度。

progressBar.setMax(75)
while (progressStatus < 75) {
    progressStatus += 1;
    // Update the progress bar and display the

    //current value in the text view
    handler.post(new Runnable() {
        public void run() {
            progressBar.setProgress(progressStatus);
            textView.setText(progressStatus+"/"+progressBar.getMax());
        }
    });
    try {
        // Sleep for 200 milliseconds.

        //Just to display the progress slowly
        Thread.sleep(200);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

最多150也可以只睡100毫秒。