Android 根据用户';s偏好
如何根据用户偏好显示不同的启动屏幕 我的应用程序中有几个主题,当用户选择他喜欢的主题时,它存储在Android 根据用户';s偏好,android,styles,themes,splash-screen,Android,Styles,Themes,Splash Screen,如何根据用户偏好显示不同的启动屏幕 我的应用程序中有几个主题,当用户选择他喜欢的主题时,它存储在SharedPreferences中。在我的活动中,我从prefs获取所选主题,调用setTheme(R.style.Any_主题)然后调用setContentView(R.layout.activity\u any)并且它工作得非常完美。但是当我尝试调用相同的setTheme(R.style.Any_主题)时在我的启动活动中,它不起作用,因为启动屏幕只是在样式中使用background属性 飞溅背景
SharedPreferences
中。在我的活动中,我从prefs获取所选主题,调用setTheme(R.style.Any_主题)
然后调用setContentView(R.layout.activity\u any)代码>并且它工作得非常完美。但是当我尝试调用相同的setTheme(R.style.Any_主题)时代码>在我的启动活动中,它不起作用,因为启动屏幕只是在样式中使用background
属性
飞溅背景属性
<attr name="splashBackground" format="reference"/>
轻主题的基本样式
<style name="BaseAppTheme.Light" parent="Theme.AppCompat.Light.NoActionBar">
<item name="splashBackground">@drawable/splash_light</item>
...
</style>
@可牵引/飞溅灯
...
黑色主题的基本样式
<style name="BaseAppTheme" parent="Theme.AppCompat.NoActionBar">
<item name="splashBackground">@drawable/splash_dark</item>
...
</style>
@可拉拔/飞溅/黑色
...
根据用户偏好,必须应用于应用程序的启动主题
<style name="SplashScreen.Light" parent="AppTheme.Light">
<item name="android:windowBackground">?attr/splashBackground</item>
</style>
<style name="SplashScreen.Blue" parent="AppTheme.Blue">
<item name="android:windowBackground">?attr/splashBackground</item>
</style>
<style name="SplashScreen.Dark" parent="AppTheme.Dark">
<item name="android:windowBackground">?attr/splashBackground</item>
</style>
...
?属性/背景
?属性/背景
?属性/背景
...