package com.wistron.WiCamera; import android.os.SystemClock; import android.view.View; import android.widget.Button; import android.widget.Chronometer; import android.widget.Chronometer.OnChronometerTickListener; /** * * @Copyright (c) 2011 Wistron SWPC All rights reserved. * * @created: 2011/09/26 * @filename: TimeCounter.java * @author WH1107063(周海江) * @purpose 用于录制计时的类 * */ public class TimeCounter { // 定义显示时间的textview public Button m_csbtn_recordtime; // 定义用于计时的计时控件 public Chronometer m_chronometer_recordtime; public TimeCounter(Chronometer m_chronometer_recordtime, Button m_csbtn_recordtime) { // 接收构造函数传过来的值,并给本类的参数赋值 this.m_csbtn_recordtime = m_csbtn_recordtime; this.m_chronometer_recordtime = m_chronometer_recordtime; // 初始化本类的时候隐藏传过来的显示录制时间的textview,并赋初始值 m_csbtn_recordtime.setText("00:00:00"); // m_csbtn_recordtime.setVisibility(View.GONE); } /** * 开始计时 */ public void start() { // System.out.println("开始计时了。。。"); // 显示录制时间的textview m_csbtn_recordtime.setVisibility(View.VISIBLE); // 计时器控件重新置数,并开始启动计时器 m_chronometer_recordtime.setBase(SystemClock.elapsedRealtime()); m_chronometer_recordtime.start(); // 当背景改变是后背景改变 m_chronometer_recordtime .setOnChronometerTickListener(new OnChronometerTickListener() { // 记录录制时间变量 @Override public void onChronometerTick(Chronometer chronometer) { // TODO Auto-generated method stub // 为显示录制时间的textview赋值 String time = chronometer.getText().toString(); System.out.println("time为" + time); // 确保显示时间的格式为00:00:00 if (time.length() == 5) { m_csbtn_recordtime.setText("00:" + chronometer.getText()); } else if (time.length() == 7) { m_csbtn_recordtime.setText("0" + chronometer.getText()); } else if (time.length() == 8) { m_csbtn_recordtime.setText(chronometer.getText()); } if (WiCameraActivity.mCurrentDegree == 90||WiCameraActivity.mCurrentDegree == 270) { WiCameraActivity.m_al_camera_overlayui .postInvalidate(); } } }); } /** * 停止计时 */ public void stop() { // 隐藏传过来的显示录制时间的textview // m_cstxt_recordtime.setVisibility(View.INVISIBLE); m_csbtn_recordtime.setText("00:00:00"); // 计时器控件重新置数,并开始停止计时器 m_chronometer_recordtime.stop(); // m_chronometer_recordtime.setBase(SystemClock.elapsedRealtime()); } }