android之计时器chronometer
效果图:
activity代码:
package cn.com.chenzheng_java; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Chronometer; /** * @description Chronometer计时器的应用实例 * @author chenzheng_java * @since 2011/03/17 * */ public class ChronometerActivity extends Activity { Chronometer chronometer; Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { chronometer.stop(); Log.i("通知", "计时结束"); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.chronometer); chronometer = (Chronometer)findViewById(R.id.chronometer1); Button button = (Button)findViewById(R.id.button_ch); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /** * SystemClock.elapsedRealtime() 获取从启动开始的时间,设置了它之后计时器会从00:00开始计时 * SystemClock.currentThreadTimeMillis()获取当前Thread的运行时间 * SystemClock.setCurrentTimeMillis (long millis) 设置当前的时间 * * chronometer.setBase()方法可以设置当前的计时器开始计时的时间 */ chronometer.setBase(SystemClock.elapsedRealtime()); /** * 设置现实的格式,你可以指定一个字符串,字符串中包含一个%s,然后chronometer * 就会自动将mm:ss的那个时间放置到你的第一个%s的位置。 */ chronometer.setFormat("当前时间:%s"); // 启动 chronometer.start(); Log.i("通知", "计时开始"); Handler handler = new Handler(); handler.post(new Runnable() { @Override public void run() { timer.schedule(task, 10000); } }); } }); } }
chronometer.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Chronometer android:id="@+id/chronometer1" android:text="Chronometer" android:gravity="center_horizontal" android:layout_width="match_parent" android:layout_height="wrap_content"></Chronometer> <Button android:text="click" android:id="@+id/button_ch" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button> </LinearLayout>
----------------------------------------------------------------------
chronometer是一个计时器,我们可以通过其进行设置。主要的方法有
我们可以看到,我们还可以注册一个Chronometer.OnChronometerTickListener事件,每当chronometer时间发生变化时就会触发该事件,也就是说,1秒钟会触发一次。
更多相关文章
- android取得系统时间
- Android(安卓)时间戳和时间之间的转化
- Android(安卓)获取几天后的时间
- Android计时器和倒计时
- Android(安卓)自定义Animation,使用Camera对View组件作三维变换
- Android图片上传的工具类
- Android(Java):长时间未登录提醒
- 【HR小时制】如何获取Android系统时间的小时制
- Android(安卓)获取时间实时更新UI