3 回答

TA贡献1893条经验 获得超10个赞
经过一些研究,我发现这是不可能的。当我们想要在加载主要功能时显示某些内容时使用启动屏幕,因此我们将要显示的可绘制对象包含在清单中,以便在我们的主要活动加载时快速显示。这个启动屏幕,就像它在 Manifest 中一样,出现在其他任何东西之前,所以如果我们可以动态地改变启动屏幕的主题,我们将在加载其他所有内容时失去快速出现。

TA贡献1805条经验 获得超9个赞
public void onCreate(Bundle savedInstanceState) {
if (Constants.dayMode){
setTheme(android.R.style.yourTheme);
} else {
setTheme(android.R.style.yourTheme);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.actvity);
}

TA贡献1829条经验 获得超6个赞
试试这个代码
主题.xml
<resources>
<style name="AppThemeLight" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
</style>
<style name="AppThemeDark" parent="Theme.AppCompat">
<!-- Customize your theme here. -->
<item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
</style>
<!-- This will set the fade in animation on all your activities by default -->
<style name="WindowAnimationTransition">
<item name="android:windowEnterAnimation">@android:anim/fade_in</item>
<item name="android:windowExitAnimation">@android:anim/fade_out</item>
</style>
活动
@Override
protected void onCreate(Bundle savedInstanceState) {
AppSettings settings = AppSettings.getInstance(this);
setTheme(settings.getBoolean(AppSettings.Key.USE_DARK_THEME) ? R.style.AppThemeDark : R.style.AppThemeLight);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_transition_theme);
//
}
添加回答
举报