28

我想显示一个日历,其中包含在日期上使用不同颜色的事件,类似于默认日历应用程序。但我在默认日历视图上看不到任何此类 API。

谁能指导我正确的方向如何进行?我应该扩展默认日历并添加自己的功能吗?还是应该将 5x5 文本框与 PageViewer 和片段一起使用?

4

5 回答 5

19

内置的 CalendarView 小部件不公开更改月视图中日历单元格颜色的功能。查看源代码

您可以尝试以下方法:

  1. 从 CalendarView 扩展并自己实现 onDraw。您必须重新实现所有现有的绘图行为,包括以下 4 种方法:

    受保护的无效onDraw(帆布画布){
        绘制背景(画布);
        drawWeekNumbersAndDates(画布);
        drawWeekSeparators(画布);
        drawSelectedDateVerticalBars(画布);
    }
    
  2. 实现您自己的允许自定义单元格的 CalendarView。我建议将此项目作为一个很好的起点,因为它已经支持自定义单元格。

于 2013-05-15T04:26:06.730 回答
14

上个月,我能够使用 Caldroid https://github.com/roomorama/Caldroid实现一个小日历视图。

它使用起来很灵活,而且onDrawCalendarView.

检查我创建的视图(只需遵循文档):

使用 Caldroid 自定义日历视图

当然,你可以超越这一点。

于 2015-07-03T20:04:30.740 回答
5

我已经编写了我自己的 CalendarView,就像在 Google 日历中看到的一样。能够在月份、侦听器、添加事件之间滚动,并且是一个 gradle 项目:https ://github.com/SundeepK/CompactCalendarView 。它使用油漆来完成所有的绘图,所以它应该很容易改变来做任何你想做的事情。

于 2015-06-10T11:51:22.233 回答
4

以下项目是迄今为止我见过的最好的替代方案,它允许在日历的日期单元格中显示特定于事件的视觉效果:

https://github.com/tyczj/ExtendedCalendarView

于 2014-03-28T13:34:43.083 回答
0

如何更改某些日期颜色 - 通过使用 android:dateTextAppearance 和 setDateTextAppearance(int)?它曾经被描述过: 更改日历日期的颜色 android 你可以试试这个

于 2013-05-15T08:13:31.123 回答