我在我的应用中添加了一个启动画面,没有setContentView
(以避免不必要的延迟);但我似乎无法根据用户选择的应用主题找到如何更改启动画面。
我尝试在setTheme
之前使用onCreate
来处理相应的活动,但它不起作用。我也尝试使用主题属性(?android:attr/colorPrimary
),但它也不起作用。
我搜索过,但似乎找不到任何关于动态更改主题的内容。
以下是我的活动在清单中的引用方式:
<activity
android:name=".activities.SplashActivity"
android:theme="@style/SplashTheme">
...
</activity>
我的风格是如何定义的:
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>
我的drawable是如何定义的:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/colorPrimary" />
<item>
<bitmap android:gravity="center" android:src="@mipmap/ic_beacon" />
</item>
</layer-list>
如何根据用户选择的主题更改初始屏幕的背景颜色?