如何设置Android的TimePickerDialog样式?

时间:2017-07-30 20:07:47

标签: android

我在代码中创建TimePickerDialog,我希望在其上有自定义颜色。它默认出现灰色和丑陋,我希望它有特定的颜色。

我按如下方式创建TimePickerDialog

TimePickerDialog time = new TimePickerDialog(
    context, 
    R.style.timePickerDialog,
    new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker timePicker, int i, int i1) {}
    }, 10, 0, DateFormat.is24HourFormat(this)
);

但它出现的颜色错误,我在我的应用程序中没有使用。我是否应该为此对话框指定样式?它为什么会出现灰色和深红色?

我无法理解没有这方面的教程。是否还有一些其他超级秘密方式可以在Android上选择时间?

1 个答案:

答案 0 :(得分:1)

您可以通过为其添加样式来更改TimePicker的样式。您可以通过两种方式执行此操作,方法是指定重音颜色或更改Timepicker中每个元素的颜色。

通过指定重音颜色进行更改:

 <item name="colorAccent">yourColor</item>

通过指定每个元素的颜色来进行更改:

使用以下方式设置样式:

 <item name="android:timePickerStyle">@style/MyTimePicker</item>

然后使用:

创建样式
<style name="MyTimePicker" parent="android:Widget.Material.Light.TimePicker">
<item name="android:timePickerMode">clock</item>
<item name="android:headerBackground">yourcolor</item>
<item name="android:numbersTextColor">your_color</item>
<item name="android:numbersInnerTextColor">your_color</item>
<item name="android:numbersSelectorColor">your_color</item>
<item name="android:numbersBackgroundColor">your_color</item>
<item name="android:amPmTextColor">?android:attr/textColorSecondary</item>
</style>