没有setContentView的主题启动画面

时间:2018-03-08 09:14:02

标签: android themes splash-screen android-theme

我在我的应用中添加了一个启动画面,没有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>

如何根据用户选择的主题更改初始屏幕的背景颜色?

0 个答案:

没有答案