【发布时间】:2016-10-18 03:32:31
【问题描述】:
我很清楚如何使用 manifest 中的主题和标签 windowBackground 在 Android 中设置活动的 splash。
最近出现了一位客户,要求“根据白天的某些事件更改初始屏幕”。 我几乎可以肯定它无法完成,但我决定用这段代码试一试:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
int random = (int) Math.abs(System.currentTimeMillis() % 3);
switch (random) {
case 0:
setTheme(R.style.FullscreenTheme1);
break;
case 1:
setTheme(R.style.FullscreenTheme2);
break;
default:
setTheme(R.style.FullscreenTheme3);
break;
}
}
}
显然这是行不通的。
有人已经尝试过,或者有更好的主意?
谢谢
编辑:
创建一个虚假的活动或片段以显示为启动屏幕很容易,但会在应用程序启动时留下令人不快的白色(或黑色,取决于主题)闪烁。
这个问题是关于以编程方式更改初始屏幕的可行性,其结果与在清单中硬编码相同。
【问题讨论】:
-
你能做到吗?
-
抱歉,好像不可能。您可以在您的应用程序启动时设置启动画面,但它是不可更改的,如下所述:bignerdranch.com/blog/splash-screens-the-right-way 或者您可以创建一个类似的视图,如果您在打开应用程序时可以承受半秒的空白屏幕,您可以随时更改。
标签: android splash-screen