我有四个ImageViews,我想通过开关来闪烁它们&转到列表中(例如:1 ImageView变得可见,等待一些时间,变得不可见,3 ImageView变得不可见,等待一些时间,变得可见等等)。我尝试了一些变体,但是ImageViews总是同时闪烁,有时主线程会进入休眠模式,而不是我想要的线程。如何正确地实现它?
我的一次尝试是:
...
//choose ImageView to flash
h = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 0: flashing(CircleR); break;
case 1: flashing(CircleY); break;
case 2: flashing(CircleG); break;
case 3: flashing(CircleB); break;
default:
CircleR.setVisibility(View.VISIBLE);
CircleY.setVisibility(View.VISIBLE);
CircleG.setVisibility(View.VISIBLE);
CircleB.setVisibility(View.VISIBLE);
}
};
};
...
Thread showList = new Thread (new Runnable() {
@Override
public void run() {
for(int x: list){
h.sendEmptyMessage(x);
try {
showList.sleep(2*PAUSE_DURATION);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
h.sendEmptyMessage(4);
}
});
...
//Here I start my thread
protected void SPStartTurn(){
CircleR.setVisibility(View.INVISIBLE);
CircleY.setVisibility(View.INVISIBLE);
CircleG.setVisibility(View.INVISIBLE);
CircleB.setVisibility(View.INVISIBLE);
showList.run();
}
...
public void flashing(final View view) {
view.setVisibility(View.VISIBLE);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
view.setVisibility(View.INVISIBLE);
//next = true;
}
}, PAUSE_DURATION);
} 发布于 2014-12-25 12:58:56
使用计时器:
static void ddd(Context context){
CountDownTimer time = new CountDownTimer(60000, 1000) {//Now time is 1 minute
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
///////set the visibility
}
}.start ();
}
}我想这会有帮助的
https://stackoverflow.com/questions/27643135
复制相似问题