我想显示一个日历,其中包含在日期上使用不同颜色的事件,类似于默认日历应用程序。但我在默认日历视图上看不到任何此类 API。
谁能指导我正确的方向如何进行?我应该扩展默认日历并添加自己的功能吗?还是应该将 5x5 文本框与 PageViewer 和片段一起使用?
我想显示一个日历,其中包含在日期上使用不同颜色的事件,类似于默认日历应用程序。但我在默认日历视图上看不到任何此类 API。
谁能指导我正确的方向如何进行?我应该扩展默认日历并添加自己的功能吗?还是应该将 5x5 文本框与 PageViewer 和片段一起使用?
内置的 CalendarView 小部件不公开更改月视图中日历单元格颜色的功能。查看源代码。
您可以尝试以下方法:
从 CalendarView 扩展并自己实现 onDraw。您必须重新实现所有现有的绘图行为,包括以下 4 种方法:
受保护的无效onDraw(帆布画布){ 绘制背景(画布); drawWeekNumbersAndDates(画布); drawWeekSeparators(画布); drawSelectedDateVerticalBars(画布); }
实现您自己的允许自定义单元格的 CalendarView。我建议将此项目作为一个很好的起点,因为它已经支持自定义单元格。
上个月,我能够使用 Caldroid https://github.com/roomorama/Caldroid实现一个小日历视图。
它使用起来很灵活,而且onDraw
从CalendarView
.
检查我创建的视图(只需遵循文档):
当然,你可以超越这一点。
我已经编写了我自己的 CalendarView,就像在 Google 日历中看到的一样。能够在月份、侦听器、添加事件之间滚动,并且是一个 gradle 项目:https ://github.com/SundeepK/CompactCalendarView 。它使用油漆来完成所有的绘图,所以它应该很容易改变来做任何你想做的事情。
以下项目是迄今为止我见过的最好的替代方案,它允许在日历的日期单元格中显示特定于事件的视觉效果:
如何更改某些日期颜色 - 通过使用 android:dateTextAppearance 和 setDateTextAppearance(int)?它曾经被描述过: 更改日历日期的颜色 android 你可以试试这个