Android - 计时器
来源:互联网 发布:护考软件排行 编辑:程序博客网 时间:2024/05/28 23:21
public class MainActivity extends Activity implements OnClickListener,OnChronometerTickListener{private Chronometer myChronometer; //定义计时器组件Chronometerprivate Button startBtn;private Button stopBtn;private Button exitBtn;private Button stopVibratorBtn;private Vibrator vibrator; //定义震动操作@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//取得震动服务vibrator = (Vibrator) getApplication().getSystemService(Service.VIBRATOR_SERVICE); myChronometer = (Chronometer) findViewById(R.id.myChronometer);//设置myChronometer的输出内容,其中%s为 MM:SS 格式。myChronometer.setFormat("累计计时时间: %s"); //设置myChronometer的计时监听myChronometer.setOnChronometerTickListener(this);startBtn = (Button) findViewById(R.id.startBtn);stopBtn = (Button) findViewById(R.id.stopBtn);stopVibratorBtn = (Button) findViewById(R.id.stopVibratorBtn);exitBtn = (Button) findViewById(R.id.exitBtn);startBtn.setOnClickListener(this);stopBtn.setOnClickListener(this);stopVibratorBtn.setOnClickListener(this);exitBtn.setOnClickListener(this);}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.startBtn:myChronometer.start(); //开始计时break;case R.id.stopBtn:myChronometer.stop(); //停止计时break;case R.id.stopVibratorBtn:vibrator.cancel(); //停止震动break;case R.id.exitBtn:finish(); //退出程序break;default:break;}}@Overridepublic void onChronometerTick(Chronometer chronometer) {//replaceAll("[^(\\d{2}:\\d{2})]", ""):将字符串time中,不符合 XX:XX 的所有字符替换为空。String time = chronometer.getText().toString().replaceAll("[^(\\d{2}:\\d{2})]", "");if(time.equals("00:05")){//第一个参数设置震动模式:等待1s震动0.1S,再等待0.1S震动0.1S。//第二个参数:0代表重复震动,-1代表不重复震动。vibrator.vibrate(new long[] {1000, 100, 100, 100}, 0);}}}
<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/myChronometer" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/startBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="开始" /> <Button android:id="@+id/stopBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="停止" /> <Button android:id="@+id/stopVibratorBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="停止震动" /> <Button android:id="@+id/exitBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:text="退出" /> </LinearLayout> </LinearLayout>
<uses-permission android:name="android.permission.VIBRATE"/>
0 0
- Android 计时器
- android-计时器
- android 计时器
- android 计时器
- android 计时器
- Android 计时器
- Android计时器
- Android - 计时器
- Android 计时器
- Android计时器
- Android 计时器
- Android计时器
- android 计时器
- Android 计时器
- android 计时器
- Android计时器
- Android计时器
- Android 计时器
- 使用vector创建一个二维数组(一)
- 用java写成的一个物理数据处理程序
- javascript面试题_2
- IPNC RDK5.0 make sysall 无法通过问题
- opencv中CvSeq的取点用法
- Android - 计时器
- LeetCode题解:First Bad Version
- 新建cocos 2d-x 项目的错误
- 半年总结之哪些年的管理
- 分享你最喜欢的技巧和提示(Xcode,Objective-C,Swift,C...等等)
- 栈的压入、弹出序列
- iOS开发:WebKit、Safari以及SafariViewController
- gnome-terminal doesn't start on Ubuntu 15.04
- PL/SQL之包的创建和使用处理