使用Android Chronometer显示毫秒数

时间:2010-06-05 09:41:27

标签: android chronometer

我正在寻找一种方法让Android中的计时器(最好是1.6及以上)在计数时显示10秒钟。

有可能这样做吗?如果没有,是否有一个免费的(最好是开源的)库也可以这样做?如果做不到的话,我会写自己的,但我宁愿使用其他人的!

5 个答案:

答案 0 :(得分:12)

Android的默认天文台小部件不支持毫秒格式化。

我修改了Chronometer小部件源代码以显示毫秒数。从github下载。

答案 1 :(得分:5)

  

是否可以这样做?

不是真的。您可以传递显示十分之一秒的格式字符串,但Chronometer本身仅每秒更新一次。更新频率被烘焙到代码中。

  

如果没有,是否有免费(和   优选开源)库   做同样的事情吗?

Apache许可证2.0下提供Chronometer source,因此您可以对其进行修改以适应。查找1000的所有匹配项并将其更改为100,您可能大部分都在那里。

请记住,此Chronometer可用于活动但不能用于应用小部件,因为应用小部件框架不支持自定义View类。

答案 2 :(得分:1)

TimeCounter是一个功能完全相同的库。暂停/恢复秒表时,您无需担心增加和减少时间。我相信这将使您过得愉快。

答案 3 :(得分:0)

我创建了一个我在Activity内构建的类的实例。这个新类是Android CountDownTimer类的扩展(添加实现的方法)

在构造函数中,您可以以毫秒为单位添加持续时间,并将间隔添加为1/10秒,即100毫秒。在onTick方法中,命令在给定持续时间内每1/100秒执行一次。这应该有用。

答案 4 :(得分:-1)

经过大量的研究,我找到了方法。我不知道它是否有效,因为事实是模拟器在大约10秒后崩溃,但在手机上它运行得很好,这对我来说。它看起来像这样:

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);
    }
  };
}