Android Datepicker单单元格颜色

时间:2018-09-11 04:27:52

标签: android android-layout android-studio datepicker

嗨,我希望能够选择一个月中的一些日期并更改其颜色。在我的应用程序中说,我希望9月的日期3、4、8为红色,以便用户能够知道在那些特定的日期已经有一个提交。如果可能的话,这可能吗?提前致谢!

编辑。香港专业教育学院试图搜索论坛,搜索其他地方,但无法获得答案。

为了清楚起见,我不只是希望更改颜色主题,还希望更改特定日期的颜色。假设用户在9月8日提交了一些东西。我希望我的应用程序日期选择器通过更改日期选择器窗口中数字8的颜色来显示该数字。

1 个答案:

答案 0 :(得分:1)

选中library,以显示具有不同颜色主题的日期:

添加到您的styles.xml

<style name="MyDatePickerDialogTheme" parent="android:Theme.Material.Light.Dialog">
    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    <item name="android:colorAccent">@color/beautiful_color</item>
</style>

<style name="MyDatePickerStyle" parent="@android:style/Widget.Material.Light.DatePicker">
    <item name="android:headerBackground">@color/beautiful_color</item>
    <item name="android:datePickerMode">calendar</item>
</style>

此外,如果要更改日期选择器的整个主题,请使用以下依赖项

dependencies {
    compile 'com.wdullaer:materialdatetimepicker:3.6.3'
}

您可以使用app:mcv_dateTextAppearance(或Java setter)来执行此操作。我没有完整的解释,但是现在,您可以复制默认实现并根据需要进行修改。本质上,您需要提供android:textColor,它是具有所需颜色的颜色状态列表。

添加样式:

<style name="TextAppearance.MyCustomDay" parent="android:TextAppearance.DeviceDefault.Small">
    <item name="android:textSize">12sp</item>
    <item name="android:textColor">@color/my_custom_day_color</item>
</style>

并创建color / my_custom_day_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:enterFadeDuration="@android:integer/config_shortAnimTime"
    android:exitFadeDuration="@android:integer/config_shortAnimTime">

    <item android:state_checked="true" android:color="SELECTION_COLOR" />
    <item android:state_pressed="true" android:color="SELECTION_COLOR" />
    <item android:state_enabled="false"  android:color="#808080" />
    <item android:color="@android:color/black" />
</selector>

然后设置应用:mcv_dateTextAppearance =“ @ style / TextAppearance.MyCustomDay”