为了显示时间的流逝,下面我们来自定义一个TextView实现计时功能.代码如下:
import java.text.SimpleDateFormat;
import java.util.Date;
import android.content.Context;
import android.os.Handler;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
public class TimerTextView extends TextView {
private Handler handler = new Handler() {
public void handleMessage(android.os.Message msg) {
sendEmptyMessageDelayed(0, 1000);
setTime();
time += 1000;
};
};
private long time;
private SimpleDateFormat mformat = new SimpleDateFormat("mm:ss");
public TimerTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setTime();
}
public TimerTextView(Context context, AttributeSet attrs) {
super(context, attrs);
setTime();
}
public TimerTextView(Context context) {
super(context);
setTime();
}
//开始计时
public void startTimer() {
time = 1000;
handler.sendEmptyMessageDelayed(0, 1000);
setVisibility(View.VISIBLE);
}
//停止计时
public void stopTimer() {
time = 0;
handler.removeMessages(0);
setTime();
setVisibility(View.GONE);
}
//更新时间
private void setTime() {
setText(mformat.format(new Date(time)));
}
}