我想在我的应用程序中添加Night/Day主题,我在网上阅读了很多文章,但我仍然不明白这个方法是谁设置的,是Android OS,还是我必须创建一个基于在一天中的季节和时间设置DefaultNightMode()?
问问题
295 次
1 回答
0
您的应用程序主题由您处理,操作系统和 SystemUI 颜色由系统处理。
要在您的应用程序中更改主题,您必须res/values/styles.xml
如下定义您的样式,并且您已在活动代码中应用它(在setContentView()
方法之前)
<style name="AppLight" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/appColorPrimaryLight</item>
<item name="colorPrimaryDark">@color/appColorPrimaryDark</item>
<item name="colorAccent">@color/appColorAccentLight</item>
</style>
<style name="AppDark" parent="Theme.AppCompat">
<item name="colorPrimary">@color/appColorPrimaryDark</item>
<item name="colorPrimaryDark">@color/appColorPrimaryDark</item>
<item name="colorAccent">@color/appColorAccentDark</item>
</style>
在你的主要活动中
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Here goes the theme setup
setTheme(R.style.AppDark)
setContentView(R.layout.activity_main)
}
您显然可以根据您的应用程序逻辑更改算法以应用浅色/深色主题。关于 android night more 实现,每个 OEM 都有自定义的 android 操作系统实现,一些设备内置了主题管理器,而另一些则根本不允许主题化,因此它还没有提供通用主题化功能
于 2018-07-24T22:07:04.903 回答