如何显示视图3秒钟,然后隐藏它?
我尝试了线程,但android会抛出“CalledFromWrongThreadException:只有创建视图层次结构的原始线程可以触及其视图。”如何显示视图3秒钟,然后隐藏它?
那么,我该如何等待3秒钟,然后隐藏视图,让GUI响应?
-
A定时器使用另一个线程要么,所以它不会解决..
菌种一个单独的线程休眠3秒钟然后调用runOnUiThread
隐藏视图。
Thread thread = new Thread() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
runOnUiThread(new Runnable() {
@Override
public void run() {
// Do some stuff
}
});
}
};
thread.start(); //start the thread
一个'Message'和一个'Handler'可以做更多的Android-y方法来做同样的事情,特别是当涉及到UI操纵。 – Dave 2010-07-14 17:39:13
当线程正在休眠时,它仍然使得GUI对我的按键不负责任。 – 2010-07-14 18:06:33
@Dave我想了解更多关于.. – 2010-07-14 18:07:34
还有一个更简单的方法来做到这一点:使用View.postDelayed(runnable, delay)
View view = yourView;
view.postDelayed(new Runnable() {
public void run() {
view.setVisibility(View.GONE);
}
}, 3000);
这不是很精确:可以隐藏在3.5或3.2秒,因为它张贴到UI线程的消息队列。
使用post()或runOnUiThread()就像setTimeout()一样。
没有必要非得视图引用或睡一个线程:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// do stuff
}
}, 3000);
于Android的启动画面简单的例子,Userful公司给你:[点击这里](http://www.androidpeople.com/android-loading-welcome-splash-spash-screen-example“spash screen example”) – Popeye 2012-11-20 09:19:45