我们正在将深色和浅色主题应用于应用程序。我们最初的主题将变得轻松。在这种情况下,我很难更改活动的实际过渡颜色。在活动之间切换时,我使用以下代码应用动画:
finish();
startActivity(new Intent(this, MainActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK));
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
这留下了我们在清单上的应用程序主题上设置的背景,如下所示:
<activity
android:name=".MainActivity"
android:theme="@style/MyStyle_Light" />
样式如下:
<style android:name="MyStyle_Light" parent="Theme.AppCompat.Light">
<!-- some style resources -->
</style>
<style android:name"MyStyle_Dark" parent="Theme.AppCompat">
<!-- some style resources -->
</style>
现在,样式 Theme.AppCompat.Light 在其窗口上具有浅色背景。它是在 AndroidManifest.xml 的活动中定义的。
要更改活动的主题,我使用类似这样的代码,并且在第一个开口处看到清单中的原始颜色后,它便可以工作。
@Override
public void onCreate()
{
setTheme(R.style.MyStyle_Dark); // can also be MyStyle_Light depending on user choice
super.onCreate();
setContentView(R.layout.MyLayout);
// rest goes on
}
问题出在淡出和淡入动画之后出现的原始颜色,因为即使用户选择了深色主题,由于 MyStyle_Light 位于清单主题上,他们总是看到淡出动画上的浅色背景。
如何更改清单中的背景颜色?
到目前为止我已经尝试或考虑的事情:
感谢任何建议,谢谢。