我想让图像在60毫秒内可见,然后不可见,然后我想要另一张图像做同样的事情......依此类推。 我不认为我正在使用计时器..因为当我运行应用程序时,两个图像同时打开,并且当我按下使用此功能的按钮时不会消失。
以下是一些示例代码..
timer.schedule(new TimerTask()
{
@Override
public void run()
{
LED_1.setVisibility(View.VISIBLE);
// LED_1 is an ImageView
}
}, 60);
LED_1.setVisibility(View.INVISIBLE);
timer2.schedule(new TimerTask()
{
@Override
public void run()
{
LED_2.setVisibility(View.VISIBLE);
// LED_2 is an ImageView
}
}, 60);
LED_2.setVisibility(View.INVISIBLE);
还有另一种选择吗?我试过像......这样的例子 Android app How to delay your Service start on phone boot
和
http://www.roseindia.net/java/beginners/DelayExample.shtml
但它没有做我想要的......
我做错了什么?或者有其他方法可以做到这一点吗?
感谢。
-Faul
Good.Dima ..
int delayRate = 60;
final Runnable LED_1_On = new Runnable()
{
public void run()
{
LED_1.setVisibility(View.VISIBLE);
handler.postDelayed(this, delayRate);
}
};
handler.postDelayed(LED_1_On, delayRate);
final Runnable LED_2_On = new Runnable()
{
public void run()
{
LED_1.setVisibility(View.INVISIBLE);
LED_2.setVisibility(View.VISIBLE);
handler3.postDelayed(this, delayRate);
}
};
handler.postDelayed(LED_2_On, delayRate);
答案 0 :(得分:2)
您可以尝试使用Handler,它将smth发布到UI线程中,它可以延迟发布 postDelayed
答案 1 :(得分:0)
问题在于两个计时器都有60毫秒的延迟,并且在两者的运行方法中,您都将它们设置为可见。您需要更改其中一个运行方法以将其设置为不可见。
答案 2 :(得分:0)
你正在创建两个事件,从现在开始都会发射60毫秒。
您可以设置第一个事件在60毫秒内触发,第二个事件在120毫秒内触发,或者让第一个事件触发第一个事件从第一个事件开始提交60毫秒。