代码之家  ›  专栏  ›  技术社区  ›  Matthew Steeples

用安卓计时表显示毫秒数

  •  13
  • Matthew Steeples  · 技术社区  · 14 年前

    我正在寻找一种方法让安卓系统中的计时器(最好是1.6或更高版本)在倒数时显示10分之一秒。

    可以这样做吗?如果没有,是否有一个免费的(最好是开源的)库可以做到这一点?如果不成功,我会自己写,但我宁愿用别人的!

    4 回复  |  直到 6 年前
        1
  •  5
  •   CommonsWare    6 年前

    可以这样做吗?

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

    如果没有,是否有免费的(和 最好是开源)库 一样吗?

    这个 Chronometer source 在Apache许可证2.0下可用,因此您可以根据需要修改它。查找所有出现的 1000 把它们换成 100 你可能是其中的大部分。

    记住这个 天文钟 可以在活动中使用,但不能在应用程序小部件中使用,因为自定义 View 应用程序小部件框架不支持类。

        2
  •  12
  •   antoniom Дмитрий Стрижаков    13 年前

    Android的默认计时器小部件不支持毫秒格式。

    为了显示毫秒,我修改了计时器小部件的源代码。从下载 github .

        3
  •  0
  •   user Roman    12 年前

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

    在构造函数中,您可以将持续时间(毫秒)和间隔添加到1/10秒,即100毫秒。在 onTick 方法,在给定的持续时间内,每隔1/100秒执行一次命令。那应该管用。

        4
  •  -1
  •   bboylalu    14 年前

    经过大量的研究,我找到了方法。我不知道它是否有效,因为事实是模拟器在大约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);
        }
      };
    }
    
    推荐文章