在 Android 中更改日期选择器的颜色,也可以自定义启动画面
Change colour of date picker in Android with possibility to have custom Splash screen as well
我正在做一个项目,我希望有自定义启动画面,但我也希望有深色风格的 Android 对话框,这与我的 Android 主题选择相对应。
目前一切似乎都很好,除了我的日期选择器有启动画面的背景。如何保留初始屏幕,但使用自定义颜色作为日期选择器背景而不是当前的初始屏幕图像?同样出于某种原因,我的其他对话框的按钮中有蓝色文本,但日期选择器全是紫色。为什么会这样以及如何解决?
这是我在 Android 项目中的 styles.xml:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MainTheme.Splash" parent="MainTheme.Base">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorAccent">#1976D2</item>
</style>
</resources>
目前如果我有这个:<item name="android:windowBackground">@drawable/splash_screen</item>
-> 我的日期选择器背景是闪屏图像
如果我删除 <item name="android:windowBackground">@drawable/splash_screen</item>
-> 我的启动画面没有图像,只有深色背景
我的目标是在日期选择器中使用深色背景,在初始屏幕中使用图像。
如果有人有同样的疑问,这里是一个答案:
<style name="MainTheme" parent="MainTheme.Base">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorAccent">#1976D2</item>
<item name="android:datePickerDialogTheme">@style/CustomDatePickerDialog</item>
</style>
<style name="CustomDatePickerDialog" parent="ThemeOverlay.AppCompat.Dialog">
<!--header background-->
<item name="colorAccent">#009933</item>
<!--header textcolor-->
<item name="android:textColorPrimaryInverse">#ff9900</item>
<!--body background-->
<item name="android:windowBackground">#000099</item>
<!--selected day-->
<item name="android:colorControlActivated">#ff8000</item>
<!--days of the month-->
<item name="android:textColorPrimary">#ffff00</item>
<!--days of the week-->
<item name="android:textColorSecondary">#ff0066</item>
<!--cancel&ok-->
<item name="android:textColor">#00ffff</item>
</style>
我正在做一个项目,我希望有自定义启动画面,但我也希望有深色风格的 Android 对话框,这与我的 Android 主题选择相对应。
目前一切似乎都很好,除了我的日期选择器有启动画面的背景。如何保留初始屏幕,但使用自定义颜色作为日期选择器背景而不是当前的初始屏幕图像?同样出于某种原因,我的其他对话框的按钮中有蓝色文本,但日期选择器全是紫色。为什么会这样以及如何解决?
这是我在 Android 项目中的 styles.xml:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="MainTheme.Splash" parent="MainTheme.Base">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorAccent">#1976D2</item>
</style>
</resources>
目前如果我有这个:<item name="android:windowBackground">@drawable/splash_screen</item>
-> 我的日期选择器背景是闪屏图像
如果我删除 <item name="android:windowBackground">@drawable/splash_screen</item>
-> 我的启动画面没有图像,只有深色背景
我的目标是在日期选择器中使用深色背景,在初始屏幕中使用图像。
如果有人有同样的疑问,这里是一个答案:
<style name="MainTheme" parent="MainTheme.Base">
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowIsFloating">false</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="colorPrimary">#2196F3</item>
<item name="colorAccent">#1976D2</item>
<item name="android:datePickerDialogTheme">@style/CustomDatePickerDialog</item>
</style>
<style name="CustomDatePickerDialog" parent="ThemeOverlay.AppCompat.Dialog">
<!--header background-->
<item name="colorAccent">#009933</item>
<!--header textcolor-->
<item name="android:textColorPrimaryInverse">#ff9900</item>
<!--body background-->
<item name="android:windowBackground">#000099</item>
<!--selected day-->
<item name="android:colorControlActivated">#ff8000</item>
<!--days of the month-->
<item name="android:textColorPrimary">#ffff00</item>
<!--days of the week-->
<item name="android:textColorSecondary">#ff0066</item>
<!--cancel&ok-->
<item name="android:textColor">#00ffff</item>
</style>