实现效果:点击 Button 启动定时器每隔1秒切换一次字体颜色(红色和黄色),共闪烁3次。再次点击 Button闪烁重新开始,再次闪烁3次,如此反复。
实现方法:(Timer,TimerTask,Handler)
Timer timer;
/启动计时器
private void startTimer() {
//每次重新启动定时器是先停掉原来的计时器,重新计时
stopTimer();
if (timer == null) {
index = 0;
timer = new Timer();
timer.schedule( new TimerTask() {
@Override
public void run() {
Message message = new Message();
message.arg1 = 0;
handler_.sendMessage( message );
}
}, 1000, 1000 );
}
}
//停止计时器 (cancel方法过后,timer要设置为null,不然无法执行schedule)
private void stopTimer() {
if (timer != null) {
timer.cancel();
timer = null;
}
}
android.os.Handler handler_ = new android.os.Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.arg1 == 0) {
changeTextViewColor();
//闪烁3次之后,计时器停掉
if (index == 6) {
index = 0;
StopTimer();
}
}
}
};
//通过对2求余得到的数来切换闪烁的颜色
int index = 0;
public void changeTextViewColor() {
if (index % 2 == 0) {
calltextview.setTextColor( Color.rgb( 253, 243, 6 ) );//黄色
} else {
calltextview.setTextColor( Color.rgb( 255, 3, 16 ) );//红色
}
index = index + 1;
}