今天在公司做了一个刷新UI界面的问题

当用户点击了录像按钮后,按钮要不断闪烁

这里就用到了线程

Handler


new Thread(mRunnable).start();//调用


* Function : 实现run()方法,每1秒发送一条Message给Handler

* Author : 博客园-依旧淡然 */

private Runnable mRunnable = new Runnable() {

public void run() {

while(isRecord) {

try {

Thread.sleep(1000);

mHandler.sendMessage(mHandler.obtainMessage());

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

};

* Function : 实现handleMessage()方法,用于接收Message,刷新UI

* Author : 博客园-依旧淡然

*/

private Handler mHandler = new Handler() {

public void handleMessage(Message msg) {

super.handleMessage(msg);

refreshUI();

}

};

//*下面这条if语句用来判断用户是否点击了停止录像按钮

// 若没有改if语句,则按钮在闪烁时,由于时延,当红灯时点击

// 按钮停止在白灯,白灯时点击,按钮暂停在红灯,给用户造成一种错觉

if(!isRecord){

mImgRec.setVisibility(View.INVISIBLE);

return;

}

if(n % 2 == 0){

mImgRec.setVisibility(View.VISIBLE);

mImgRec.setBackgroundResource(R.drawable.controlbar_record_start);

}else if(n % 2 == 1){

//mImgRec.setBackgroundResource(R.drawable.controlbar_record_stop);

mImgRec.setVisibility(View.INVISIBLE);

}

}