Android 计时器 Chronometer的简单实用
2015-11-07 18:23
561 查看
Chronometer 是一个继承TextView的控件,利用handler计算时间值再显示。
布局文件
<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="vertical" > <Chronometer android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/bt_start" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onButtonClick" android:text="start" /> <Button android:id="@+id/bt_stop" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onButtonClick" android:text="stop" /> <Button android:id="@+id/bt_reset" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onButtonClick" android:text="reset" /> </LinearLayout>
java类文件
public class MainActivity extends Activity { private Chronometer mChronometer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mChronometer = (Chronometer) findViewById(R.id.chronometer); } public void onButtonClick(View v) { switch (v.getId()) { case R.id.bt_start: Log.i("simpleTAG", "SystemClock.elapsedRealtime()="+SystemClock.elapsedRealtime()); mChronometer.setBase(SystemClock.elapsedRealtime()); mChronometer.start(); break; case R.id.bt_stop: mChronometer.stop(); int time= (int) ((SystemClock.elapsedRealtime() - mChronometer.getBase()))/1000;//获取计时器运行的秒值, Log.i("simpleTAG", "base="+time); break; case R.id.bt_reset: mChronometer.setBase(SystemClock.elapsedRealtime()); break; } } }
可以给Chronometer设置基准时间,调用setBase()方法, 本文中调用的是系统的启动时间到现在的时间值(SystemClock.elapsedRealtime()),但是记住这个并不是计时器开始的时间,计时器还是会从0开始。
简单的调用Chronometer的start,stop,reset方法就可以实现计时器的功能。
相关文章推荐
- 使用git来打包Android源码
- 值得你关注的Android6.0上的重要变化(一)
- pulltorefresh上拉加载,没有更多数据的时候显示“加载完成”,不回调刷新接口的实现
- Android -> 如何避免Handler引起内存泄露
- Android开发--Handler引起的内存泄露
- 模拟Android软件试用到期提示注册
- Android签名有关问题
- android开发的一些概念
- Android存储-file存储
- 通过android API函数操作数据库
- Android DrawerLayout和NavigationView 的使用方法
- Android View 绘制过程
- Android(9)相对布局及其属性和练习
- Android源码分析-全面理解Context (转)
- android自动更新时间时区机制
- Android 获取屏幕尺寸与密度
- Android 高清加载巨图方案 拒绝压缩图片
- Android提高第四篇之Activity+Intent
- Android屏幕录制源码Demo下载
- Android开发笔记 - 示例代码