web-dev-qa-db-ja.com

Android ProgressBarカウントダウン

Androidのクイズを作成していて、すべての質問に答えるのに限られた時間が必要です。そのため、5から0までカウントダウンする回答の下にProgressBarを表示します(秒)。そして、ゼロに達したとき、私はいくつかのことをしたいと思います。

前もって感謝します!

32
simtaxman

Androidでカウントダウンタイマーを使用できます。

参照できる1つの例を次に示します ここをクリック

アクティビティでProgressBar以下を使用できます。

   <ProgressBar 
    Android:id="@+id/progressbar"
    style="@Android:style/Widget.ProgressBar.Horizontal"
    Android:max="100"
    Android:progress="0"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_above="@+id/bottom_header_relativelayout"
    />

アクティビティでCountDownTimer Like Likeコードを使用します。

ProgressBar mProgressBar;
CountDownTimer mCountDownTimer;
int i=0;

mProgressBar=(ProgressBar)findViewById(R.id.progressbar);
mProgressBar.setProgress(i);
   mCountDownTimer=new CountDownTimer(5000,1000) {

        @Override
        public void onTick(long millisUntilFinished) {
            Log.v("Log_tag", "Tick of Progress"+ i+ millisUntilFinished);
            i++;
            mProgressBar.setProgress((int)i*100/(5000/1000));

        }

        @Override
        public void onFinish() {
        //Do what you want 
            i++;
            mProgressBar.setProgress(100);
        }
    };
    mCountDownTimer.start();
51
Herry

ObjectAnimatorを使用して、ProgressBarの進行をアニメーション化できます。

ObjectAnimator animation = ObjectAnimator.ofInt(pb, "progress", 0, 100);
animation.setDuration(5000);
animation.setInterpolator(new DecelerateInterpolator());
animation.addListener(new Animator.AnimatorListener() {
    @Override
    public void onAnimationStart(Animator animator) { }

    @Override
    public void onAnimationEnd(Animator animator) {
        //do something when the countdown is complete
    }

    @Override
    public void onAnimationCancel(Animator animator) { }

    @Override
    public void onAnimationRepeat(Animator animator) { }
});
animation.start();
34
adamdport

XML宣言は不要

ProgressDialog TempDialog;
CountDownTimer CDT;
int i =5;

TempDialog = new ProgressDialog(Your_Class_Name.this);
TempDialog.setMessage("Please wait...");
TempDialog.setCancelable(false);
TempDialog.setProgress(i);
TempDialog.show();

CDT = new CountDownTimer(5000, 1000)
{
    public void onTick(long millisUntilFinished)
    {
        TempDialog.setMessage("Please wait.." + i + " sec");
        i--;
    }

    public void onFinish()
    {
        TempDialog.dismiss();
        //Your Code ...
    }
}.start();
2
msl