如何更改Android中日期选择器和时间选择器对话框的默认颜色?

如何更改Android中日期选择器和时间选择器对话框的默认颜色?,android,android-layout,datepicker,timepicker,Android,Android Layout,Datepicker,Timepicker,有没有办法更改DatePicker和TimePicker对话框的默认颜色 这是我试过的代码 <DatePicker style="@style/date_picker" android:background="#6495ED" android:id="@+id/DatePicker" android:layout_width="fi

有没有办法更改
DatePicker
TimePicker
对话框的默认颜色

这是我试过的代码

<DatePicker
                    style="@style/date_picker"
                    android:background="#6495ED"
                    android:id="@+id/DatePicker"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp"
                    android:layout_marginBottom="5dp"
                    android:layout_marginLeft="5dip"
                    android:layout_marginRight="5dip" />

<TimePicker
                    android:id="@+id/TimePicker"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dp"
                    android:layout_marginBottom="5dp"
                    android:layout_marginLeft="5dip"
                    android:layout_marginRight="5dip" />

您必须创建一个自定义主题并将其保存在某些目录中,才能最终将此主题设置为应用程序的默认主题

首先,在值中添加一个themes.xml,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <!-- Any customizations for your app running on pre-3.0 devices here -->
    </style>
</resources> 

然后,在res目录中创建一个名为“values-v11”(Android 3.0+)的目录,并像这样放置一个themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
        <!-- Any customizations for your app running on 3.0+ devices here -->
    </style>
</resources>

最后,在res目录中创建一个名为“values-v14”(Android 4.0+)的目录,并创建一个themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
        <!-- Any customizations for your app running on 4.0+ devices here -->
    </style>
</resources>

最后,在manifest.xml中

<application
        ...
        android:theme="@style/MyAppTheme">

我认为没有办法在XML中轻松更改旧的本机选择器小部件的灰色


我建议您使用该库,以便DatePicker和TimePicker在所有Android平台2.1+上都非常漂亮。

您可以通过如下更改主题来更改日期选择器的主题

根据您的需要更改项目

<style name="date_picker" parent="@android:style/Widget.DeviceDefault.DatePicker">
<item name="android:divider">@drawable/dialog_divider</item>

更改选择器对话框的最佳方法是向其添加自定义样式

<style name="TimePickerTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/color_primary</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
</style>

TimePickerDialog timePicker = new TimePickerDialog(mContext, R.style.TimePickerTheme, fromListener, hour, min, false);

@彩色/彩色原色
包装内容
包装内容
TimePickerDialog timePicker=新的TimePickerDialog(mContext,R.style.TimePickerTheme,fromstener,hour,min,false);

对我来说效果很好。

对于日期选择器,请将此代码添加到color.xml

  <color name="mdtp_accent_color">#070B82</color>
  <color name="mdtp_accent_color_dark">#0D105E</color>
或按程序:


TimePickerDialog timePicker=新的TimePickerDialog(mContext,R.style.TimePickerTheme,fromstener,hour,min,false)

如果需要更改的属性是public,那么这将是一种方法。遗憾的是,并不是所有用于设置小部件样式的属性都是公共的。老实说,它甚至不清楚OP所说的是什么属性。这只对新的日期选择器和时间选择器有用,而不适用于带有“银色”的Android lower 4.x。@JuliaHexen,@KKC这是针对低版本Android 4.x的解决方案,您可以更改背景银色这是一个带有自编码时间选择器和日期选择器的库,与本机Android类不同——它们是“正常”的线性布局。如果我使用一个库,我会把Holo带到任何地方,因为它比旧的Android垃圾小部件漂亮得多^^^这是一个完美的答案!TimePickerDialog.OnTimeSetListener不工作。没有错误,但颜色保持不变,即使在自定义样式中为其设置了明显不同的值。有什么帮助吗?这对我也有用。@divisi@color/color帮了我的忙。
<style name="TimePickerTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/color_primary</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
</style>

TimePickerDialog timePicker = new TimePickerDialog(mContext, R.style.TimePickerTheme, fromListener, hour, min, false);
  <color name="mdtp_accent_color">#070B82</color>
  <color name="mdtp_accent_color_dark">#0D105E</color>
 <style name="TimePickerTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/blue</item>
</style>
 android:theme="@style/MyAppTheme"