android之Chronometer
首先定义activity_main.xml文件
代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Chronometer
android:id="@+id/myChronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/butStart"
android:text="开始计时"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/butStop"
android:text="停止计时"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
然后改写MainActivity类
代码如下:
package com.example.myclock; import android.os.Bundle;
import android.os.SystemClock;
import android.os.Vibrator;
import android.app.Activity;
import android.app.Service;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener; public class MainActivity extends Activity {
private Chronometer myChronometer = null;
private Button butStart = null;
private Button butStop = null;
private Vibrator vibrator = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.myChronometer = (Chronometer)super.findViewById(R.id.myChronometer);
this.vibrator = (Vibrator)super.getApplication().getSystemService(Service.VIBRATOR_SERVICE);
this.butStart = (Button)super.findViewById(R.id.butStart);
this.butStop = (Button)super.findViewById(R.id.butStop);
this.butStart.setOnClickListener(new OnClickListenerlmplStart());
this.butStop.setOnClickListener(new OnClickListenerlmplStop());
this.myChronometer.setFormat("当前计时时间:%s。");
this.myChronometer.setOnChronometerTickListener(new OnChronometerTickListenerlmpl()); }
private class OnChronometerTickListenerlmpl implements OnChronometerTickListener{
public void onChronometerTick(Chronometer chronometer){
String time = chronometer.getText().toString().replaceAll("[^(\\d{2}:\\d{2})]", "");
if("01:00".equals(time)){
MainActivity.this.vibrator.vibrate(new long[]{1000,10,1000,100},0);
}
}
}
private class OnClickListenerlmplStart implements OnClickListener{
public void onClick(View view){
MainActivity.this.myChronometer.start();
}
}
private class OnClickListenerlmplStop implements OnClickListener{
public void onClick(View view){
MainActivity.this.myChronometer.stop();
MainActivity.this.myChronometer.setBase(SystemClock.elapsedRealtime());
MainActivity.this.vibrator.cancel();
}
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
最后改写AndroidMainfest.xml文件
代码如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myclock"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="15" /> <application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission
android:name="android.permission.VIBRATE"/>
</manifest>
运行效果如下图:
android之Chronometer的更多相关文章
- Android中Chronometer计时器的简单使用
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
- Android中Chronometer 计时器和震动服务控件
Chronometer 计时器控件 首先在布局文件中添加chronometer控件:然后在mainActivity中获取到该控件 4 然后通过Button时间监听器中开启计时操作 5 chronome ...
- Android计时器 android.widget.Chronometer
说起做定时器,大家一般会想到Timer和Executors的定时器线程池,其实用这两个做都会有问题,在停止和重新计时时你回发现无法停止或者说计时加快(加快是因为多个线程在记录同一个变量),Androi ...
- Android控件开发之Chronometer(转)
(转自:http://blog.csdn.net/sun6255028/article/details/6688349) Chronometr是一个简单的定时器,你可以给它一个开始时间,并以此定时,或 ...
- Chronometer控件实现的Android计时器
本文为大家演示了如何使用Chronometer控件实现Android计时器的实例. 先贴上最终的实现效果图: Android计时器实现思路 使用Chronometer控件实现计器的操作.通过设置set ...
- Android用户界面 UI组件--TextView及其子类(四) Chronometer计时器
Chronometer是一个简单的定时器,你可以给它一个开始时间,并以此定时,或者如果你不给它一个开始时间,它将会使用你的时间通话开始.默认情况下它会显示在当前定时器的值的形式“分:秒”或“H:MM: ...
- Android Chronometer控件使用,计时器
Android Chronometer实现了一个简单的计时器,继承自TextView,因此可以使用TextView的text控制属性来控制时间显示的颜色.字体大小等:可以定义时间显示格式,默认“MM: ...
- Android简易实战教程--第三十九话《Chronometer实现倒计时》
Android提供了实现按照秒计时的API,今天就是用这个API实现简单的倒计时. 来个布局: <?xml version="1.0" encoding="utf- ...
- Android零基础入门第60节:日历视图CalendarView和定时器Chronometer
原文:Android零基础入门第60节:日历视图CalendarView和定时器Chronometer 上一期学习了AnalogClock.DigitalClock和TextClock时钟组件,本期继 ...
随机推荐
- Android 中获得notification的发出时间
最近做程序时,有一个类似闹钟的功能,用notification唤醒程序后,希望能得到发出这个notification时的具体时间,就是notification右边写着的那个时间.查了notificat ...
- Emacs 从入门到精通
1 前言 不想再说废话了,既然你会阅读这篇文档,说明你多少对Emacs有 些兴趣,或者已 经非常熟悉Emacs的基础操作了,并且希望有所提高.因此我不需要再把"编辑器 之神,还是神的编辑器& ...
- .tar.bz2文件解压命令
从网络上下载到的源码包, 最常见的是 .tar.gz 包, 还有一部分是 .tar.bz2包 要解压很简单 : .tar.gz 格式解压为 tar -zxvf xx. ...
- vs c++ 将string转换为double
可以用atof()这个函数,但是这个函数的参数是char*类型的,因此需将string类型强制转换,方法为在函数的参数中写成 const_cast<const char *>(str.c_ ...
- Win10手动添加开始磁铁
1.移动到C:\Users\spring\AppData\Roaming\Microsoft\Windows\Start Menu\Programs 2.拖拽
- mysql_4(解决中文乱码问题)
mysql> create database if not exists xdb default character set utf8;Query OK, 1 row affected (0.0 ...
- linux常见问题集锦-2
http://zhangge.net/1986.html 在此感谢作者分享 1.linux如何挂在windows下的共享目录 Shell 1 mount.cifs //192.168.1.3/serv ...
- 分布式缓存 memcache学习
1.使用分布式缓存是为了解决多台机器共享信息的问题,通过访问一个ip和端口来可以访问不同的IIS服务器 2.memcache基础原理 在Socket服务器端存储数据是以键值对的形式存储 内存处理的算法 ...
- AltiumDesigner学习笔记(一)——创建工程与原理图文件
一.创建工程与原理图文件 1.通过菜单创建PCB工程 (1)File - New - Project - PCB Project,即可在当前工作区创建新的PCB工程 (2)新建工程并不直接在硬盘中创建 ...
- sql2005-数据库备份方案 (转载)
sql2005数据库备份一般情况分为二种:一是手工备份.二是自动备份.以下是二种方法的步骤: 一.手工备份 打开数据库,选择要备份数据库,右键选择[任务]->[备份],打开备份数据库页面,在[源 ...