gpt4 book ai didi

android - Cordova Android 在运行时以编程方式设置 windowBackground

转载 作者:太空狗 更新时间:2023-10-29 14:36:26 31 4
gpt4 key购买 nike

当 Cordova android 应用程序启动时,在 cordova-plugin-splashscreen 启动之前会短暂地看到一个空白屏幕。我了解到这是windowBackground 颜色并且可以通过制作自定义 styles.xml 并通过 Activity 的 android:theme 属性在 AndroidManifest.xml 中引用它来更改。示例:

来自 AndroidManifest.xml:

<activity android:configChanges="orientation|keyboard|keyboardHidden|screenLayout|screenSize" android:label="@string/activity_name" android:launchMode="singleTask" android:name="MainActivity" android:screenOrientation="portrait" android:theme="@style/CustomStyle" android:windowSoftInputMode="adjustPan">

来自 styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomStyle" parent="@android:style/Theme.Material.Light.NoActionBar">
<item name="android:windowBackground">@drawable/init_splash</item>
</style>
</resources>

styles.xml 引用了另一个只包含可绘制颜色的文件。

这行得通。它允许我更改启动画面之前出现的颜色。

但是,我现在希望允许用户选择更改为深色主题。我已经想出如何修改 cordova-plugin-splashscreen 以根据用户偏好更改启动画面,但我在在运行时以编程方式更改 windowBackground/theme 时遇到了问题。

我尝试在 MainActivity.java 或 CordovaActivity.java 中添加以下内容:

setTheme(R.style.CustomDarkStyle);

getWindow().setBackgroundDrawableResource(getResources().getIdentifier("init_splash_dark", "drawable", getPackageName()));

getWindow().setBackgroundDrawable(new ColorDrawable(Color.BLACK));

我将它们放在 super.onCreate() 或 setContentView() 之前的 onCreate 中。窗口背景颜色确实发生了变化,但启动前的初始空白屏幕保持 list 中设置的任何颜色

如何在应用程序启动时以编程方式更改 Activity/窗口背景颜色?

Some have suggested将应用程序主题更改为透明主题以完全防止黑屏,但这会导致应用程序打开延迟。我对空白屏幕没问题,我只想以编程方式更改它的颜色。

截至 4 月 22 日,我还没有找到解决此问题的方法。

最佳答案

创建一个与您的项目同名的类,它将扩展应用程序而不是 Activity 。将此代码放在此类中,因为它会在您的应用程序启动后立即自动初始化。它将充当您的应用程序的构造函数。希望对您有所帮助!
我有一个名为“slot”的项目,所以我创建了一个名为 slot 的类

package com.xyz.slot;

import android.app.Application;

public class slot extends Application {
@Override
public void onCreate() {
setTheme(R.style.CustomDarkStyle);
super.onCreate();

}
}

但请确保没有在 list 中设置主题,因为它不会被覆盖。

关于android - Cordova Android 在运行时以编程方式设置 windowBackground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54541254/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com