Estoy haciendo un quiz para Android y quiero un tiempo limitado para contestar cada pregunta. Así que les quiero mostrar una barra de progreso en las respuestas que cuenta de, por ejemplo, de 5 a 0 (segundos). Y cuando llega a cero, quiero hacer algunas cosas. Tengo la prueba y todo funcionando, solo quiero añadir el componente ProgressBar.

Gracias de antemano!

InformationsquelleAutor simtaxman | 2012-04-20

3 Comentarios

  1. 53

    puede usar el temporizador de cuenta regresiva en android .

    Aquí está un Ejemplo puede Referirse Haga Clic Aquí

    puede usar debajo de ProgressBar en su Actividad.

       <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"
        />

    Uso CountDownTimer Como a Continuación el código en su Actividad.

    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();
    • Hace que el trabajo con un ProgressBar? Porque eso es lo que quiero mostrar.
    • ¿Desea Mostrar en xml de diseño ,me refiero a que usted no quiere pop-up con el Progreso de la Derecha.
    • Cómo puedo hacer tick más suave? Porque ahora tiene 5 grandes pasos.
    • Garrapata más suave decir , el progreso se muestran paso a paso de incremento.¿usted consigue problema en la actualización de los Avances,permítanme conocido que el código de uso.
    • Resuelto, se olvidó de cambiar de android:max en el diseño.
    • ¿cómo podemos contar y mostrar el progreso de un segundo?
    • Para Mostrar el progreso durante 1 Seg necesita cambiar en nueva CountDownTimer(1000,10) que se llame por cada 10 milisegundos .
    • ¿cuál será el valor de millisInFuture y countDownInterval de retardo de 2 segundos de 0 – 2 segundos de no 2 – 0, significa contar. ¿cuál será el valor debe poner en el setProgress(float progress)?
    • ¿Cómo puedo detener la cuenta regresiva cuando el usuario hace clic por ejemplo en un botón para pasar a la siguiente actividad? He intentado utilizar el «PASADO», pero su todavía de alguna manera contar

  2. 34

    Se podría utilizar un ObjectAnimator para animar el progreso de la 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();
    • en este sentido
  3. 2

    Sin necesidad de declaración 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();

Dejar respuesta

Please enter your comment!
Please enter your name here