Android计时器实战:Chronometer控件使用

2 下载量 101 浏览量 更新于2024-09-03 收藏 131KB PDF 举报
本文主要介绍了在Android开发中如何实现时分秒计时器的两种方法,特别适合在需要实时显示时间流逝的场景中使用,如录像应用中的倒计时显示。 在Android中,实现计时器功能可以使用系统提供的`Chronometer`组件。这是一种专门用于显示自某个基值以来经过的时间的视图。以下是如何使用`Chronometer`的基本步骤: 首先,在布局文件(如`activity_main.xml`)中添加`Chronometer`控件: ```xml <Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:format="%s" android:id="@+id/timer" /> ``` 这里的`android:format`属性定义了时间的显示格式,默认显示秒数。`android:id`用于为该组件设置一个ID,方便在Java代码中进行引用。 然后,在Activity的`onCreate`方法中找到并初始化`Chronometer`: ```java @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); timer = (Chronometer) findViewById(R.id.timer); } ``` 为了开始计时,可以调用`start()`方法,并设置基值为当前时间,通常使用`SystemClock.elapsedRealtime()`获取: ```java public void btnClick(View view) { timer.setBase(SystemClock.elapsedRealtime()); // 计时器清零 timer.start(); } ``` 如果需要显示小时、分钟和秒,可以稍微修改`btnClick`方法,计算出小时数,并更新`Chronometer`的显示格式: ```java public void btnClick(View view) { timer.setBase(SystemClock.elapsedRealtime()); // 计时器清零 int hour = (int) ((SystemClock.elapsedRealtime() - timer.getBase()) / 1000 / 60); timer.setFormat("0" + String.valueOf(hour) + ":%s"); // 显示格式修改为小时:秒 timer.start(); } ``` 同时,记得调整XML布局文件中的`Chronometer`的`format`属性,以便与Java代码保持一致: ```xml <Chronometer android:layout_width="match_parent" android:layout_height="wrap_content" android:format="0%H:%s" /> <!-- 修改为小时:秒格式 --> ``` 此外,还可以添加一个停止计时的方法: ```java public void stopClick(View view) { timer.stop(); } ``` 这样就实现了显示时分秒的计时器。当用户点击按钮时,计时器开始计时,并显示小时和秒;再次点击,计时器停止。 总结来说,Android的`Chronometer`组件提供了一种简便的方式实现时分秒计时功能,通过设置基值、格式和控制启动/停止,可以灵活地在应用中展示时间流逝。