Java 更改整个应用程序的背景

Java 更改整个应用程序的背景,java,android,background,Java,Android,Background,我想让我的应用程序的用户可以选择更改整个应用程序的背景。我的解决方案是创建一个按钮,在onclicklistener中,我将使用setBackgroundResource分别更改每个活动的背景 有更好的方法吗?或者我的方法就足够了?将此样式放在res>values>styles.xml中 <style name="bgThemeDark" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:

我想让我的应用程序的用户可以选择更改整个应用程序的背景。我的解决方案是创建一个按钮,在onclicklistener中,我将使用setBackgroundResource分别更改每个活动的背景


有更好的方法吗?或者我的方法就足够了?

将此样式放在res>values>styles.xml中

<style name="bgThemeDark" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowBackground">@drawable/bg1</item>
</style>    
如果您不想在运行时更改主题,也可以在清单中设置此选项


注意:您不应设置任何活动布局父节点的任何背景。

您尝试过任何内容或有任何代码吗?对我来说似乎足够了。我还没有尝试过。使用您的背景资源更改@drawable/ic_launcher。如果我想有4-5个不同的背景,该怎么办?1分钟后回答。惊人的答案更新的答案来解释你。这是一种方式,你需要实现你的需要。
<style name="bgThemeLight" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowBackground">@drawable/bg2</item>
</style>    
boolean darkTheme = true;

public void onCreate(Bundle savedInstanceState) {
    setTheme(darkTheme ? R.style.bgThemeDark:R.style.bgThemeLight);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
}
<application
    android:theme="@style/CustomBackgroundTheme"
<activity
      android:name=".appClasses.activities.ActivityMain"
      android:theme="@style/CustomBackgroundTheme"
      >