Android练习-----计时器(Chronometer)
来源:互联网 发布:linux vi怎么保存 编辑:程序博客网 时间:2024/05/18 00:32
计时器(Chronometer ) 控件可以显示从某个起始时间开始,一共过去了多长时间。由于该控件继承 TextView,所以它以文本的形式显示内容。一般在使用该控件的时候,会调用以下几个方法
- setBase(long base) 设置计时器计时的基准(开始)时间
- setFormat(String format) 设置用于格式化显示格式的字符串,计时器将用“MM:SS”或 “H:MM:SS”形式的值替换格式化字符串中的第一个“%s”
- setOnChronometerTickListener(OnChronometerTickListener listener) 设置计时器变化时调用的监听器
- start() 开始计时,该操作不会影响到由 setBase(long base) 设置的基准(开始)时间,仅影响显示的视图
- stop() 停止计时,该操作不会影响到由 setBase(long base) 设置的基准(开始)时间,仅影响显示的视图
在使用计时器控件时,需要在XML布局文件中添加< Chronometer >标记,代码如下
<Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/chronometer"/>
在Eclipse中新建一个Android项目,名称为TestChronometer,在屏幕添加一个计时器
(1) 在res/layout 目录下修改 activity_main.xml 文件,然后添加一个 Chronometer 控件和一个普通按钮控件,代码如下
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/chronometer"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/rest" android:id="@+id/rest" android:visibility="gone" /></LinearLayout>
上述代码中,Button 控件的 android:visibility 属性用来设置该控件的可见与不可见的状态,设置为”gone”,表示不可见并且不占用空间
(2) 在MainActivity.java 文件中,获取计时器控件,并设置起始时间和显示时间的格式,开启计时器等,代码如下
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;import android.widget.Chronometer.OnChronometerTickListener;import android.app.Activity;public class MainActivity extends Activity { private Button rest = null; private Chronometer chronometer = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chronometer = (Chronometer) findViewById(R.id.chronometer); rest = (Button) findViewById(R.id.rest); chronometer .setBase(SystemClock.elapsedRealtime()); //设置起始时间 chronometer .setFormat("已用时间:%s"); //设置显示时间格式 chronometer .start(); //开启计时器 chronometer .setOnChronometerTickListener(new chronometerListener()); rest.setOnClickListener(new restOnClickListener()); } class restOnClickListener implements OnClickListener{ public void onClick(View v) { chronometer.setBase(SystemClock.elapsedRealtime()); //设置起始时间 chronometer.start(); //开启计时器 rest.setVisibility(View.INVISIBLE); //设置按钮不可见 }} class chronometerListener implements OnChronometerTickListener{ public void onChronometerTick(Chronometer chronometer) { if (SystemClock.elapsedRealtime() - chronometer.getBase() >= 10000) { chronometer.stop(); //停止计时器 rest.setVisibility(View.VISIBLE); } } }}
上述代码中,先获取到计时器控件,然后使用 setBase(SystemClock.elapsedRealtime()) 方法为计时器设置起始时间, setFormat() 为计时器设置格式,然后使用 start() 方法开启计时器。在监听器中判断如果 (SystemClock.elapsedRealtime() - chronometer.getBase() >= 10000) 为真,则使用 stop() 方法来停止计时器,并且使用 setVisibility() 方法设置 Button 控件可以。在按钮控件的监听器中为计时器添加了起始时间和开启计时器的方法,在单击按钮的时候,计时器将重新开始,同时Button控件设置为不可见。
运行该项目,计时器显示效果如图:
- Android练习-----计时器(Chronometer)
- android之计时器chronometer
- android之计时器chronometer
- android 计时器 Chronometer
- android之计时器 chronometer
- Android---25---Chronometer计时器
- Android 计时器,仿Chronometer
- android chronometer 计时器
- Android之计时器Chronometer
- Android 时间计时器控件 Chronometer
- Android计时器Chronometer的使用
- Android Chronometer控件使用,计时器
- Android使用Chronometer实现计时器
- Android计时器Chronometer小例子
- 计时器:Chronometer
- Chronometer 计时器
- 计时器:Chronometer
- Chronometer 计时器
- hdu1863 畅通工程 Kruskal 和 Prime求最小生成树
- c++ lambda表达式笔记
- 压缩感知测量矩阵详解
- 51Nod-1022-石子归并 V2
- 小笔记-用位运算实现求平均数的一个较高效方法
- Android练习-----计时器(Chronometer)
- UOJ 207 共价大爷游长沙
- JavaScript基础_03样式引入与结构语句
- ORA获取服务名
- 蓝桥杯 基础练习 十六进制转八进制
- Android自定义竖直方向SeekBar
- Log4j2+spring+maven配置首例
- Git简要教程
- java类加载器