自定义时间计时器
最近比较忙 就不做说明了,可以实现 00:00:00 格式的计时功能 ,如果有不同之处可以改代码修改一下即可,代码很简单 大家看看就能明白
import android.content.Context;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;import java.util.Timer;
import java.util.TimerTask;public class TimerView extends android.support.v7.widget.AppCompatTextView {private long mSeconds;private Handler mHandler = new Handler();public TimerView(Context context) {super(context);}public TimerView(Context context, AttributeSet attrs) {super(context, attrs);}public TimerView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}public void startTimer() {mHandler.postDelayed(new Runnable() {@Overridepublic void run() {mSeconds++;calcTime();startTimer();}}, 1000);}@Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();if (mHandler != null) {mHandler.removeCallbacksAndMessages(null);}}private void calcTime() {String timeStr = "00:00:00";if (mSeconds < 60) {timeStr = "00:00:" + calcTimeFormat(mSeconds);} else if (mSeconds >= 60 && mSeconds < 3600) {int second = (int) (mSeconds % 60);int minute = (int) (mSeconds / 60);timeStr = "00:" + calcTimeFormat(minute) + ":" + calcTimeFormat(second);} else if (mSeconds >= 3600) {int hour = (int) (mSeconds / 3600);int secondL = (int) (mSeconds % 3600);String secondStr = "00";String minuteStr = "00";if (secondL < 60) {secondStr = calcTimeFormat(secondL);} else {int minute = secondL / 60;int second = (int) (secondL % 60);secondStr = calcTimeFormat(second);minuteStr = calcTimeFormat(minute);}timeStr = calcTimeFormat(hour) + ":" + minuteStr + ":" + secondStr;}setText(timeStr);}private String calcTimeFormat(long timeLong) {return timeLong >= 10 ? timeLong + "" : "0" + timeLong;}
}
自定义时间计时器
最近比较忙 就不做说明了,可以实现 00:00:00 格式的计时功能 ,如果有不同之处可以改代码修改一下即可,代码很简单 大家看看就能明白
import android.content.Context;
import android.graphics.Color;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;import java.util.Timer;
import java.util.TimerTask;public class TimerView extends android.support.v7.widget.AppCompatTextView {private long mSeconds;private Handler mHandler = new Handler();public TimerView(Context context) {super(context);}public TimerView(Context context, AttributeSet attrs) {super(context, attrs);}public TimerView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}public void startTimer() {mHandler.postDelayed(new Runnable() {@Overridepublic void run() {mSeconds++;calcTime();startTimer();}}, 1000);}@Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();if (mHandler != null) {mHandler.removeCallbacksAndMessages(null);}}private void calcTime() {String timeStr = "00:00:00";if (mSeconds < 60) {timeStr = "00:00:" + calcTimeFormat(mSeconds);} else if (mSeconds >= 60 && mSeconds < 3600) {int second = (int) (mSeconds % 60);int minute = (int) (mSeconds / 60);timeStr = "00:" + calcTimeFormat(minute) + ":" + calcTimeFormat(second);} else if (mSeconds >= 3600) {int hour = (int) (mSeconds / 3600);int secondL = (int) (mSeconds % 3600);String secondStr = "00";String minuteStr = "00";if (secondL < 60) {secondStr = calcTimeFormat(secondL);} else {int minute = secondL / 60;int second = (int) (secondL % 60);secondStr = calcTimeFormat(second);minuteStr = calcTimeFormat(minute);}timeStr = calcTimeFormat(hour) + ":" + minuteStr + ":" + secondStr;}setText(timeStr);}private String calcTimeFormat(long timeLong) {return timeLong >= 10 ? timeLong + "" : "0" + timeLong;}
}