Android 在应用程序启动时以编程方式更改 windowBackground

标签 android splash-screen

我很清楚如何使用 list 中的主题和标签 windowBackground 在 Android 中设置 Activity 的 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;
        }
    }
}

显然这是行不通的。

有人已经尝试过同谋或有更好的主意?

谢谢

编辑:

创建一个假的 Activity 或 fragment 以显示为启动画面会很容易,但会在应用程序启动时留下令人不快的白色(或黑色,具体取决于主题)闪烁。

这个问题是关于以编程方式更改启动画面的可行性,其结果与在 list 中对其进行硬编码的结果相同。

最佳答案

如果您删除 Splash 并通过创建一个全屏显示您想要的图像 n 秒的 Activity 来模拟它,会怎样?

关于Android 在应用程序启动时以编程方式更改 windowBackground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862185/

相关文章:

android - 如何为卡片 View 设置边框?

android - 使用 Google+ 的 Soundcloud API 移动 OAUTH 登录不适用于 Android

xml - 数据报包到 xml

ios - IOS 启动画面缩放问题

android - AutoCompleteTextView 未从 Google Places API 获取建议

android - 降低Android中的音频播放速度

Android:启动画面和网页 View

iphone - iOS Root View Controller 的 viewDidAppear : called while splash screen (Default. png) 仍然在屏幕上

java - Android 在闪屏中加载 Activity

android - 如何在android中使用不同图像在启动画面上显示动画