zoukankan      html  css  js  c++  java
  • 控件:Chronometer 计时器(定时震动)

       现在可以发现计时器组件是TextView的子类,所以其主要功能肯定还是显示文本操作。

    main.xml

    View Code
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    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>

    MyChronometerDemo.java

    View Code
    package org.lxh.demo;

    import android.app.Activity;
    import android.app.Service;
    import android.os.Bundle;
    import android.os.SystemClock;
    import android.os.Vibrator;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Chronometer;
    import android.widget.Chronometer.OnChronometerTickListener;

    public class MyChronometerDemo 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);
    // 调用默认布局管理器
    super.setContentView(R.layout.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 OnClickListenerImplStart()) ;
    this.butStop.setOnClickListener(new OnClickListenerImplStop()) ;
    // 格式化文本
    this.myChronometer.setFormat("当前计时时间:%s。");
    // 设置监听
    this.myChronometer.setOnChronometerTickListener(
    new OnChronometerTickListenerImpl());
    }
    private class OnChronometerTickListenerImpl implements OnChronometerTickListener {
    @Override
    public void onChronometerTick(Chronometer chronometer) {
    // 取出时间
    String time = chronometer.getText().toString()
    .replaceAll("[^(\\d{2}:\\d{2})]", "");
    if ("01:00".equals(time)) { // 满一分钟
    // 设置震动周期,以及循环震动
    MyChronometerDemo.this.vibrator.vibrate(new long[] { 1000, 10,
    1000, 100 }, 0);
    }
    }
    }
    private class OnClickListenerImplStart implements OnClickListener {

    @Override
    public void onClick(View view) {
    // 开始计时
    MyChronometerDemo.this.myChronometer.start() ;
    }
    }
    private class OnClickListenerImplStop implements OnClickListener {

    @Override
    public void onClick(View view) {
    // 结束计时
    MyChronometerDemo.this.myChronometer.stop() ;
    // 复位
    MyChronometerDemo.this.myChronometer.setBase(SystemClock.elapsedRealtime());
    // 取消震动
    MyChronometerDemo.this.vibrator.cancel() ;
    }
    }
    }

    AndroidManifest.xml

    View Code
    <?xml version="1.0" encoding="utf-8"?>
    <manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package
    ="org.lxh.demo"
    android:versionCode
    ="1"
    android:versionName
    ="1.0">
    <uses-sdk android:minSdkVersion="10" />

    <application
    android:icon="@drawable/icon"
    android:label
    ="@string/app_name">
    <activity
    android:name=".MyChronometerDemo"
    android:label
    ="@string/app_name">
    <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>

  • 相关阅读:
    JS 时间格式化函数
    jQuery 输入框 在光标位置插入内容, 并选中
    js Html结构转字符串形式显示
    .aspx 页面引用命名空间
    sql随机实现,sql GUID
    一个清华女大学生与一个普通二本男大学生的QQ聊天记录
    asp.net inc 的使用
    JS编码,解码. asp.net(C#)对应解码,编码
    SQL的小常识, 备忘之用, 慢慢补充.
    Js 时间间隔计算(间隔天数)
  • 原文地址:https://www.cnblogs.com/androidsj/p/2415892.html
Copyright © 2011-2022 走看看