2010-06-05 26 views
12

Estoy buscando una forma de hacer que el cronómetro en Android (preferiblemente de 1.6 en adelante) muestre décimas de segundo mientras cuenta.Mostrar milisegundos con el cronómetro Android

¿Es posible hacer esto? Si no, ¿hay una biblioteca gratuita (y de preferencia de código abierto) que haga lo mismo? Si no lo hago, escribiré el mío, ¡pero prefiero usar el de otra persona!

Respuesta

5

¿Es posible hacer esto?

Realmente no. Puede pasar una cadena de formato que muestra décimas de segundo, pero el Chronometer solo se actualiza cada segundo. La frecuencia de actualización se procesa en el código.

Si no es así, ¿hay una (fuente y preferentemente abierto) libre de biblioteca que hace lo mismo?

El Chronometer source está disponible bajo Apache License 2.0, por lo que puede modificarlo para adaptarlo. Busque todas las ocurrencias de 1000 y cámbielas a 100, y es probable que la mayor parte del camino esté allí.

Tenga en cuenta que este Chronometer se puede utilizar en una actividad pero no en un widget de aplicación, ya que las clases personalizadas View no son compatibles con el marco de widgets de la aplicación.

0

He encontrado el camino después de muchas investigaciones. No sé si es efectivo o no, porque la verdad es que el emulador se cuelga después de unos 10 segundos, pero en el teléfono funciona perfectamente, y eso lo hace por mí. Se parece a esto:

import android.os.Handler; 
public class Chronometer extends Activity { 
    private Handler mHandler = new Handler(); 
public void actions() { 
    mHandler.removeCallbacks(mUpdateTimeTask); 
    mHandler.postDelayed(mUpdateTimeTask, 1); //1 is the number of milliseconds you want the text to be updated 
} 
Runnable mUpdateTimeTask = new Runnable() { 
    public void run() { 
    i++; 
    txt.setText(formatTime(i)); // formatTime is just for make it readable in HH:MM:SS:MS, but I assume you already have this 
    mHandler.postDelayed(this, 1); 
    } 
    }; 
} 
+1

¿Qué es "' i' "en el código? –

10

El widget de cronómetro predeterminado de Android no admite el formato milisegundo.

He modificado el código fuente del widget del cronómetro para mostrar milisegundos. Descárguelo desde github.

0

Creé una instancia de una clase que construí dentro del Activity. Esta nueva clase era una extensión de la clase Android CountDownTimer (agregue los métodos implementados)

Aquí en el constructor puede agregar la duración en milisegundos y el intervalo de 1/10 de segundo, es decir, 100 milisegundos. En el método onTick, los comandos se ejecutan cada 1/100 de segundo para la duración dada. Eso debería funcionar.