我正在寻找一种方法让Android中的计时器(最好是1.6及以上)在计数时显示10秒钟。
有可能这样做吗?如果没有,是否有一个免费的(最好是开源的)库也可以这样做?如果做不到的话,我会写自己的,但我宁愿使用其他人的!
答案 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);
}
};
}