用于显示事件的Android CalendarView

我想显示一个日历,使用类似于默认日历应用程序的date上使用不同颜色的事件。 但是我在默认日历视图中没有看到任何这样的API。

任何人都可以请指导我正确的方向如何进行这个? 我应该扩展默认日历并添加我自己的function? 或者,我应该使用PageViewer和碎片5×5文本框?

内置的CalendarView小部件不会公开在月视图中更改日历单元格颜色的function。 看到来源 。

您可以尝试以下方法:

  1. 从CalendarView延伸并自己实现onDraw。 您将不得不重新实现所有现有的绘图行为,包括这4种方法:

    保护无效onDraw(canvascanvas){
         drawBackground(帆布);
         drawWeekNumbersAndDates(帆布);
         drawWeekSeparators(帆布);
         drawSelectedDateVerticalBars(帆布);
     }
    
  2. 实现您自己的CalendarView,允许自定义单元格。 我build议这个项目作为一个开始的好地方,因为它已经支持自定义单元格。

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

它使用起来很灵活,并且从CalendarView实现onDraw并不难。

检查我创build的视图(只需按照文档):

使用Caldroid自定义日历视图

当然,你可以超越这个。

下面的项目是迄今为止我所见过的最好的select,它允许在日历的date单元中显示特定于事件的视觉效果:

https://github.com/tyczj/ExtendedCalendarView

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

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