也许这不是最好的方法,但我的应用程序使用onCreate
加载/准备ViewAnimator
相当多的布局,所以在应用程序启动后,我的应用程序的每个屏幕都准备好使用了。所以改变不同的屏幕是平稳和快速的。有没有办法在onCreate期间显示splashscreen?
该方法的缺点是,第一个布局出现需要5秒。确切地说--的所有屏幕都是以XML布局定义的,我暗示它们在onCreate
期间被夸大了。
我的应用程序必须有一个闪屏,所以我的问题是,如果有一些方法可以使用这些5秒来显示一些图像?
编辑:
感谢您的回答,我想出了这个简单的解决方案:
Activity activity;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main_splash);
activity = this;
LinearLayout splash_layout = (LinearLayout) this.findViewById(R.id.splash_layout);
// after 1 second of splash screen, start initializing everything
splash_layout.postDelayed(new Runnable()
{
public void run()
{
activity.setContentView(R.layout.main);
// Here init whole layout and all class
// During initialization, the splashscreen is still visible
}
}, 1000);
}
你是绝对正确的;我删去了我的回答,赞成这个。询问问题的人应该做的是创建一个新的活动,显示启动画面,然后启动显示主要布局的活动。这样,将显示启动画面,直到显示主要布局。 –
是的,这看起来像迄今为止我唯一的选择。首先,实现这一点似乎很困难,但如果我只有一个main.xml,那么它应该可以工作。正如我所看到的,还有以视图作为参数的setContentView()。 –
它的工作原理!我使用简单的解决方案更新了我的问题。谢谢。 –