Android简易实战教程--第三十九话《Chronometer实现倒计时》
Android提供了实现按照秒计时的API,今天就是用这个API实现简单的倒计时。
来个布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Chronometer android:id="@+id/myChronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btnStart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="开始计时" /> <Button android:id="@+id/btnStop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止" /> <Button android:id="@+id/btnBase" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="复位" /> <Button android:id="@+id/btnFormat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="格式化" /> </LinearLayout> </LinearLayout>
对应活动中的代码如下:
package com.example.timer; import android.app.Activity; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Chronometer; public class MainActivity extends Activity { private Chronometer myChronometer = null; private Button btnStart = null; private Button btnStop = null; private Button btnBase = null; private Button btnFormat = null; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 生命周期方法 super.setContentView(R.layout.activity_main); // 设置要使用的布局管理器 this.myChronometer = (Chronometer) super .findViewById(R.id.myChronometer); btnStart = (Button) super.findViewById(R.id.btnStart); btnStop = (Button) super.findViewById(R.id.btnStop); btnBase = (Button) super.findViewById(R.id.btnBase); btnFormat = (Button) super.findViewById(R.id.btnFormat); btnStart.setOnClickListener(new OnClickListenerStart()); btnStop.setOnClickListener(new OnClickListenerStop()); btnBase.setOnClickListener(new OnClickListenerBase()); btnFormat.setOnClickListener(new OnClickListenerFormat()); } private class OnClickListenerStart implements OnClickListener { public void onClick(View arg0) { myChronometer.start(); } } private class OnClickListenerStop implements OnClickListener { public void onClick(View arg0) { myChronometer.stop(); } } private class OnClickListenerBase implements OnClickListener { public void onClick(View arg0) { myChronometer.setBase(SystemClock.elapsedRealtime()); } } private class OnClickListenerFormat implements OnClickListener { public void onClick(View arg0) { myChronometer.setFormat("新的显示格式:%s。"); } } }
运行跑起来看看效果: