2010-06-05 10 views
12

Ich bin auf der Suche nach einer Möglichkeit, den Chronometer in Android (vorzugsweise 1,6 und höher) zeigen Zehntel einer Sekunde beim Hochzählen.Zeige Millisekunden mit Android Chronometer

Ist es möglich, dies zu tun? Wenn nicht, gibt es eine freie (und vorzugsweise Open Source) Bibliothek, die das gleiche tut? Wenn ich das nicht schaffe, schreibe ich mein eigenes, aber ich würde lieber jemand anderes benutzen!

Antwort

5

Ist es möglich, dies zu tun?

Nicht wirklich. Sie könnten eine Format-Zeichenfolge übergeben, die Zehntelsekunden anzeigt, aber die Chronometer selbst wird nur jede Sekunde aktualisiert. Die Aktualisierungsfrequenz ist in den Code eingebettet.

Wenn nicht, gibt es einen kostenlosen (und vorzugsweise Open Source) Bibliothek, die das gleiche tut?

Die Chronometer source ist unter der Apache License 2.0 verfügbar, so dass Sie sie entsprechend anpassen können. Finden Sie alle Vorkommen von 1000 und ändern Sie sie in 100, und Sie sind wahrscheinlich den größten Teil des Weg dorthin.

Bedenken Sie, dass dieses Chronometer in einer Aktivität, aber nicht in einem App-Widget verwendet werden kann, da angepasste View Klassen nicht vom App-Widget-Framework unterstützt werden.

0

Ich habe den Weg nach viel, viel Forschung gefunden. Ich weiß nicht, ob es effektiv ist oder nicht, denn die Wahrheit ist, dass der Emulator nach etwa 10 Sekunden abstürzt, aber am Telefon läuft es ganz gut, und das tut es für mich. Es sieht in etwa so aus:

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

Was ist "' i'' in Ihrem Code? –

10

Das Standard-Chronometer-Widget von Android unterstützt keine Millisekunden-Formatierung.

Ich habe den Chronometer-Widget-Quellcode geändert, um Millisekunden anzuzeigen. Laden Sie es von github herunter.

0

Ich erstellte eine Instanz einer Klasse, die ich innerhalb der Activity baute. Diese neue Klasse war eine Erweiterung der Android-Klasse CountDownTimer (fügen Sie die implementierten Methoden hinzu)

Hier im Konstruktor können Sie die Dauer in Millisekunden und das Intervall zu 1/10 einer Sekunde hinzufügen, das heißt 100 Millisekunden. In der onTick Methode werden die Befehle jede 1/100 Sekunde für die gegebene Dauer ausgeführt. Das sollte funktionieren.

Verwandte Themen