在 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>