android - 如何在 Material Design android 中自定义 TimePicker?

标签 android android-theme android-timepicker

我无法更改选择器颜色和 TimePicker 的其他部分。 到目前为止,我可以更改标题颜色和背景,但无法更改内圆和文本颜色。

更改自定义主题 link .

我的代码:

<TimePicker
    android:id="@+id/tp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:timePickerMode="clock"
    android:headerBackground="#565466"
    android:amPmBackgroundColor="#500126"
    android:numbersBackgroundColor="#57e326"
    android:numbersTextColor="#995394"
    android:numbersSelectorColor="#675543"
    android:textColorSecondary="#897530"
    android:textColorPrimary="#359875"
/>

最佳答案

基本模式

您所要做的就是在 Activity 主题中设置强调色:

<item name="colorAccent">#3333cc</item>

这将为您设置所有颜色,这样您就不会弄乱样式。

(这也意味着你不应该直接在你的 TimePicker 上设置像 amPmBackgroundColor 这样的值,让 Android 为你做这些事情。)

高级模式

如果您想单独指定所有可能的值,请执行以下操作:

首先在您的 Activity 主题中定义它:

<item name="android:timePickerStyle">@style/Theme.MyTheme.TimePicker</item>

然后创建合适的样式:

<style name="Theme.MyTheme.TimePicker" parent="android:Widget.Material.Light.TimePicker">
    <item name="android:timePickerMode">clock</item>
    <item name="android:headerBackground">#ff555555</item>
    <item name="android:numbersTextColor">?android:attr/textColorPrimaryActivated</item>
    <item name="android:numbersInnerTextColor">?android:attr/textColorSecondaryActivated</item>
    <item name="android:numbersSelectorColor">?android:attr/colorControlActivated</item>
    <item name="android:numbersBackgroundColor">#ff555555</item>
    <item name="android:amPmTextColor">?android:attr/textColorSecondary</item>
</style>

请注意,numbersInnerTextColor 仅适用于 API 级别 23,其他样式(例如 headerTextColor)无法设置(或者至少我无法设置它) ).

我建议不要使用“高级”模式,因为 TimePicker 应该与包含的 Activity 具有相同的颜色,否则可能会以不好的方式影响您的用户体验。

关于android - 如何在 Material Design android 中自定义 TimePicker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32549992/

相关文章:

Android TimePickerDialog Material 设计颜色

Android API 21 - TimePicker 小部件

android - Android 中没有应用服务器的谷歌云设备到设备消息传递

android - OrmLite、日历和时间戳

android - 如何从 APK 反编译中保护 Fabric API key ?

android - 带有 Theme.AppCompat 的深色操作栏

android - 将 WhatsAPI/Yowsup 集成到 Android 中

android - 在 Android O 上切换状态栏颜色的问题

android搜索对话框自定义

android - 带有中性按钮的 TimePickerDialog