zoukankan      html  css  js  c++  java
  • Android之计时器(Chronometer)的用法

    第一步:布局文件:

    main.xml代码如下:
    View Code
     1 <?xml version="1.0" encoding="utf-8"?>
     2 
     3 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     4 
     5     android:layout_width="fill_parent"
     6 
     7     android:layout_height="fill_parent"
     8 
     9     android:orientation="vertical" >
    10 
    11 
    12 
    13 
    14     <Chronometer
    15 
    16         android:id="@+id/myChronometer"
    17 
    18         android:layout_width="fill_parent"
    19 
    20         android:layout_height="wrap_content" />
    21 
    22 
    23 
    24 
    25     <LinearLayout
    26 
    27         android:layout_width="fill_parent"
    28 
    29         android:layout_height="wrap_content"
    30 
    31         android:orientation="horizontal" >
    32 
    33 
    34 
    35 
    36         <Button
    37 
    38             android:id="@+id/btn_start"
    39 
    40             android:layout_width="wrap_content"
    41 
    42             android:layout_height="wrap_content"
    43 
    44             android:text="开始" />
    45 
    46 
    47 
    48 
    49         <Button
    50 
    51             android:id="@+id/btn_stop"
    52 
    53             android:layout_width="wrap_content"
    54 
    55             android:layout_height="wrap_content"
    56 
    57             android:text="停止" />
    58 
    59 
    60 
    61 
    62         <Button
    63 
    64             android:id="@+id/btn_base"
    65 
    66             android:layout_width="wrap_content"
    67 
    68             android:layout_height="wrap_content"
    69 
    70             android:text="复位" />
    71 
    72 
    73 
    74 
    75         <Button
    76 
    77             android:id="@+id/btn_format"
    78 
    79             android:layout_width="wrap_content"
    80 
    81             android:layout_height="wrap_content"
    82 
    83             android:text="格式化" />
    84 
    85     </LinearLayout>
    86 
    87 
    88 
    89 
    90 </LinearLayout>
    第二步:MainActivity
    代码如下:
    View Code
      1 package net.loonggg.chronometer;
      2 
      3 
      4 
      5 
      6 import android.app.Activity;
      7 
      8 import android.os.Bundle;
      9 
     10 import android.os.SystemClock;
     11 
     12 import android.os.Vibrator;
     13 
     14 import android.view.View;
     15 
     16 import android.widget.Button;
     17 
     18 import android.widget.Chronometer;
     19 
     20 import android.widget.Chronometer.OnChronometerTickListener;
     21 
     22 
     23 
     24 
     25 public class MainActivity extends Activity {
     26 
     27     private Vibrator vibrator;
     28 
     29     private Chronometer chronometer; // 计时组件
     30 
     31     private Button btn_start;
     32 
     33     private Button btn_stop;
     34 
     35     private Button btn_base;
     36 
     37     private Button btn_format;
     38 
     39 
     40 
     41 
     42     @Override
     43 
     44     public void onCreate(Bundle savedInstanceState) {
     45 
     46         super.onCreate(savedInstanceState);
     47 
     48         setContentView(R.layout.main);
     49 
     50         vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);// 获取震动服务
     51 
     52         chronometer = (Chronometer) findViewById(R.id.myChronometer);
     53 
     54         chronometer
     55 
     56                 .setOnChronometerTickListener(new OnChronometerTickListenerImpl()); // 给计时组件设置舰艇对象
     57 
     58         btn_start = (Button) findViewById(R.id.btn_start);
     59 
     60         btn_stop = (Button) findViewById(R.id.btn_stop);
     61 
     62         btn_base = (Button) findViewById(R.id.btn_base);
     63 
     64         btn_format = (Button) findViewById(R.id.btn_format);
     65 
     66 
     67 
     68 
     69         btn_start.setOnClickListener(new ButtonClickListener());
     70 
     71         btn_stop.setOnClickListener(new ButtonClickListener());
     72 
     73         btn_base.setOnClickListener(new ButtonClickListener());
     74 
     75         btn_format.setOnClickListener(new ButtonClickListener());
     76 
     77     }
     78 
     79 
     80 
     81 
     82     public class OnChronometerTickListenerImpl implements // 计时监听事件,随时随地的监听时间的变化
     83 
     84             OnChronometerTickListener {
     85 
     86 
     87 
     88 
     89         @Override
     90 
     91         public void onChronometerTick(Chronometer chronometer) {
     92 
     93             String time = chronometer.getText().toString();
     94 
     95             if ("00:05".equals(time)) {// 判断五秒之后,让手机震动
     96 
     97                 vibrator.vibrate(new long[] { 1000, 10, 100, 10 }, 0);// 设置震动周期和是否循环震动,如果不想循环震动把0改为-1
     98 
     99             }
    100 
    101         }
    102 
    103     }
    104 
    105 
    106 
    107 
    108     public class ButtonClickListener implements View.OnClickListener {
    109 
    110 
    111 
    112 
    113         @Override
    114 
    115         public void onClick(View v) {
    116 
    117             switch (v.getId()) {
    118 
    119             case R.id.btn_start:
    120 
    121                 chronometer.start();// 开始计时
    122 
    123                 break;
    124 
    125             case R.id.btn_stop:
    126 
    127                 chronometer.stop();// 停止计时
    128 
    129                 break;
    130 
    131             case R.id.btn_base:
    132 
    133                 chronometer.setBase(SystemClock.elapsedRealtime());// 复位键
    134 
    135                 break;
    136 
    137             case R.id.btn_format:
    138 
    139                 chronometer.setFormat("显示时间:%s.");// 更改时间显示格式
    140 
    141                 break;
    142 
    143 
    144 
    145 
    146             default:
    147 
    148                 break;
    149 
    150             }
    151 
    152         }
    153 
    154 
    155 
    156 
    157     }
    158 
    159 }
    第三步:注册权限:
     <uses-permission android:name="android.permission.VIBRATE" />
  • 相关阅读:
    C#操作Word完全功略
    Ubuntu安装BackExec Remote Agent for Linux
    curl快速实现网速测试
    GitHub已将持续集成服务器Janky开源
    串行(Sequential)、并发(Concurrent)、并行(parallel)与分布式(distributed)
    使用ld的wrap选项替换已有库函数
    Linux获取程序编译参数
    配置Apache+Tomcat实现SSO(单点登录)
    ipad+Blackberry构建临时网络访问
    巧解 JavaScript 中的嵌套替换
  • 原文地址:https://www.cnblogs.com/loonggg/p/2852335.html
Copyright © 2011-2022 走看看