Java 如何在Android中设置带有特定步骤的ProgressBar?

Java 如何在Android中设置带有特定步骤的ProgressBar?,java,android,android-progressbar,android-handler,Java,Android,Android Progressbar,Android Handler,我希望有时间定期增加进度,并在每次变量值为50时应用。 我的意思是,增加的每一步都可以用一定的量来控制 Android上的处理程序如何做到这一点 例子 在上面的示例中,每个步骤为50 我的代码在这里,并在处理程序中使用我的自定义进度: private Handler mIncomingHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg)

我希望有时间定期增加进度,并在每次变量值为50时应用。 我的意思是,增加的每一步都可以用一定的量来控制

Android上的处理程序如何做到这一点

例子 在上面的示例中,每个步骤为50

我的代码在这里,并在处理程序中使用我的自定义进度:

private Handler mIncomingHandler = new Handler(new Handler.Callback() {
    @Override
    public boolean handleMessage(Message msg) {
        if (REQUEST_TIMER == 0) {
            if (msg.what == 0) {
                if (progress < 100) {
                    progress++;
                    progress_bar.setProgress(progress);
                    if (progress == 99)
                        CustomActivity.this.finish();
                }
            }
        } else if (msg.what == 0) {
            if (progress < 100) {
                progress++;
                progress_bar.setProgress(progress);
            }
        }
        return false;
    }
});
private Handler mIncomingHandler=new Handler(new Handler.Callback()){
@凌驾
公共布尔句柄消息(消息消息消息){
如果(请求\计时器==0){
如果(msg.what==0){
如果(进度<100){
进步++;
进度条设置进度(进度);
如果(进度==99)
CustomActivity.this.finish();
}
}
}else if(msg.what==0){
如果(进度<100){
进步++;
进度条设置进度(进度);
}
}
返回false;
}
});

尝试使用下面的方法制作进度条动画

private void setProgressDialogAnimation(ProgressBar mProgressBar, int process) {
    ObjectAnimator animation = ObjectAnimator.ofInt(mProgressBar, "progress", 0, process);
    animation.setDuration(1500);
    animation.setInterpolator(new DecelerateInterpolator());
    animation.start();
}

在此方法中传递progressbar对象和进程。

尝试使用下面的方法制作进度条动画

private void setProgressDialogAnimation(ProgressBar mProgressBar, int process) {
    ObjectAnimator animation = ObjectAnimator.ofInt(mProgressBar, "progress", 0, process);
    animation.setDuration(1500);
    animation.setInterpolator(new DecelerateInterpolator());
    animation.start();
}

用这种方法传递progressbar对象和进程。

我不知道您的要求是什么,希望这能对您有所帮助

在我的例子中,我正在根据在媒体播放器“mp”中播放的音频文件位置更新进度条,因此我使用了以下代码

 progress_bar.setMax(100);
 if(mp.getDuration()!=0) {
     progress_bar.setProgress(100 * mp.getCurrentPosition() / mp.getDuration());
 }

我不知道你的要求是什么,希望这能对你有所帮助

在我的例子中,我正在根据在媒体播放器“mp”中播放的音频文件位置更新进度条,因此我使用了以下代码

 progress_bar.setMax(100);
 if(mp.getDuration()!=0) {
     progress_bar.setProgress(100 * mp.getCurrentPosition() / mp.getDuration());
 }

您的代码看起来是正确的,但我看不出您正在为处理程序调用
handleMessage
做什么。此代码是整个项目的摘要,与我的问题相关,因此我删除了额外的代码。您的代码看起来是正确的,但是我看不出您正在为处理程序调用
handleMessage
做什么。此代码是整个项目的摘要,与我的问题相关,因此我删除了额外的代码