计时器Chronometer和时钟(AnalogClock和DigitalClock)
计时器Chronometer和时钟(AnalogClock和DigitalClock)
(1)Android提供了两个时钟组件:AnalogClock和DigitalClock,DigitalClock继承了TextView组件,也就是说它本身是一个文本框,只是他里面的内容总是当前时间,所以为DigitalClock设置android:text属性没有作用;AnalogClock继承了View组件,重写了View的OnDraw方法,它会在View上绘制模拟时钟。
(2)AnalogClock与DigitalClock的异同:它们都会显示当前的时间。DigitalClock显示数字时钟,会显示当前时间的秒数;AnalogClock显示模拟时钟,不会显示当前时间的秒数。
(3)Android还提供了一个计时器组件:Chronometer,该组件和DigitalClock都继承自TextView,所以它们都会显示出一段文本,但是Chronometer并不显示当前时间,它显示的是从某一个起始时间开始,一共过去了多长时间。
-------案例:
(1)main.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:gravity="center_horizontal"
android:orientation="vertical" > <!-- 定义模拟时钟 -->
<AnalogClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/> <!-- 定义数字时钟 -->
<DigitalClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14pt"
android:textColor="#f0f"
android:drawableRight="@drawable/ic_launcher"
/> <!-- 计时器 继承自TextView组件,并不是显示当前的时间,显示的是从某个起始时间开始一共过去多长时间-->
<Chronometer
android:id="@+id/meter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/> <!-- 点击按钮开始计时 -->
<Button
android:id="@+id/but_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始"/> </LinearLayout>
(2)MainActivity.java文件
package com.yby.clock;
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;
import android.widget.Chronometer.OnChronometerTickListener; import com.yby.clock.R; /**
* 时钟AnalogClock和DigitalClock
* @author yinbenyang
* DigitalClock继承自TextView,显示的总是当前的时间,数字时钟,可以显示当前的秒数
* AnalogClock继承自View组件,重写了View的OnDraw方法,绘制模拟时钟,不会显示当前的秒数
*/
public class MainActivity extends Activity{ private Button but_start;
private Chronometer meter; /**
* 案例:手机里的劳力士
* SystemClock是一个获取系统时间的工具类
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
but_start = (Button) findViewById(R.id.but_start);
meter = (Chronometer) findViewById(R.id.meter);
but_start.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
// TODO Auto-generated method stub
//设置开始计时的时间
meter.setBase(SystemClock.elapsedRealtime());
//启动计时器
meter.start();
//将按钮置为禁用
but_start.setEnabled(false);
}
}); //为Chronometer绑定时间监听器
meter.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer chronometer) {
// TODO Auto-generated method stub
//计时超过20s
if(SystemClock.elapsedRealtime()-meter.getBase()>20*1000){
//停止计时器
meter.stop();
//设置按钮为启用
but_start.setEnabled(true);
}
}
}); }
}
(3)效果图:

计时器Chronometer和时钟(AnalogClock和DigitalClock)的更多相关文章
- 时钟AnalogClock和DigitalClock
<AnalogClock android:layout_width="fill_parent" android:layout_height="fill_parent ...
- Android学习笔记(20):时钟(AnalogClock和TextClock)和计时器(Chronometer)
时钟文本TextClock继承自TextView.是用于显示当前时间的文本框. TextClock支持的XML属性和相关方法 XML属性 相关方法 说明 android:format12Hour se ...
- 模拟时钟(AnalogClock)和数字时钟(DigitalClock)
Demo2\clock_demo\src\main\res\layout\activity_main.xml <LinearLayout xmlns:android="http://s ...
- 时钟(AnalogClock和DigitalClock)的功能与用法
时钟UI组件是两个非常简单的组件,DigitalClock本身就继承了TextView——也就是说它本身就是文本框,只是它里面显示的内容总是当前时间.与TextView不同的是为DigitalCloc ...
- Android零基础入门第59节:AnalogClock、DigitalClock和TextClock时钟组件
原文:Android零基础入门第59节:AnalogClock.DigitalClock和TextClock时钟组件 在前面一期,我们学习了DatePicker和TimePicker,在实际开发中其不 ...
- 从零開始学android<AnalogClock与DigitalClock时钟组件.三十一.>
这两个组件比較交单,大家看下会使用即可了 XML文件配置 <span style="font-size:18px;"><RelativeLayout xmlns: ...
- 计时器chronometer补充
项目中要实现关于安卓控件chronometer这部分的功能需求: 1.计时器的功能对用户答题时间进行时间统计,用户答完该题,进入下一题,计时器接续上一题的结束时间继续计时: 2.用户可以跳出答题界面, ...
- UI组件之TextView及其子类(五)计时器Chronometer
Chronometer直接继承了TextView组件,它会显示一段文本,显示从某个事实上时间開始.一共过了多长时间.我们看Chronometer的源代码: watermark/2/text/aHR0c ...
- 计时器Chronometer
布局文件很简单 <Chronometer android:id="@+id/test" android:layout_width="wrap_content&quo ...
随机推荐
- OD调试篇5--如何应对OD使用中的一些问题
打开小甲鱼给的进行恶搞过的程序,会发现一些问题 发现程序直接暂停,或者加载进来有问题. 那机智的我 通过对上一个没有恶搞过的exe可执行文件的PE头进行了比较 会发现其中的猫腻 那么我们去正常的修改一 ...
- (工作经验总结一二)队列--多个main的原因
1,项目创建最好有一个自己的继承于UIViewController的类,并且其他控制器继承这个控制器,灵活性较大,例如: 要给项目每个页面添加截图或用户操作轨迹记录等,这样就省去了到每个页面添加的麻烦 ...
- 使用java理解程序逻辑 第三章 选择结构一
if 选择结构: if(条件){ 代码块 //条件成立后要执行的代码.可以是一条语句,也可以是一组语句 } 可以处理单一或组合条件的情况. if-else 选择结构: if(条件){ ...
- C#静态类和静态成员
1. 静态类 1.1 简介 静态类和类成员用于创建无需创建类的实例就能够访问的数据和函数. 静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么更改,这些数据和函数都不会随之变化. ...
- (实用篇)php 文件夹删除,清除缓存程序
<?php header('content-type:text/html;charset=utf-8'); function delFile($fpath) { $filesize = arra ...
- 解决github push错误The requested URL returned error: 403 Forbidden while accessing
来源:http://blog.csdn.net/happyteafriends/article/details/11554043 github push错误: git push error: The ...
- SecureCRT最佳配色方法+直接修改默认配置方法 - imsoft.cnblogs
SecureCRT默认显示效果是黑白且刺眼的主题,看起来很不舒服.经过一番搜索,总结结果如下,直接设置默认属性,设置一次,不需再改. 效果图: 具体操作方法: Options->Global O ...
- ZMMR104-预留单批量删除及恢复
************************************************************************ Title : ZMMR104 ** Applicat ...
- ZOJ 1049 I Think I Need a Houseboat
原题链接 题目大意:Fred想在Louisiana买一套房子,但是堤坝不牢固,每年都要被河水侵蚀50平方英里.题目给出他豪宅的坐标,要求他被迫移民搬迁的年份. 解法:也没什么好说的,先求出两点间的距离 ...
- 穿越泥地(mud) (BFS)
问题 C: 穿越泥地(mud) 时间限制: 1 Sec 内存限制: 128 MB提交: 16 解决: 10[提交][状态][讨论版] 题目描述 清早6:00,FJ就离开了他的屋子,开始了他的例行工 ...