我想在类似于默认日历应用程序的日期显示使用不同颜色的事件的日历。但我没有在默认日历视图中看到任何此类API。
任何人都可以指示我正确的方向如何进行此操作?我应该扩展默认日历并添加我自己的功能吗?或者我应该使用带有PageViewer和片段的5x5文本框?
答案 0 :(得分:19)
内置的CalendarView小部件无法在月视图中显示更改日历单元格颜色的功能。请参阅the source。
您可以尝试以下方法:
从CalendarView扩展并自行实现onDraw。您将不得不重新实现所有现有的绘图行为,包括以下4种方法:
protected void onDraw(Canvas canvas) { drawBackground(canvas); drawWeekNumbersAndDates(canvas); drawWeekSeparators(canvas); drawSelectedDateVerticalBars(canvas); }
实现您自己的CalendarView,允许自定义单元格。我建议将this project作为入门的好地方,因为它已经支持自定义单元格。
答案 1 :(得分:12)
上个月,我可以使用Caldroid https://github.com/roomorama/Caldroid实现一个小日历视图。
使用起来非常灵活,从onDraw
实施CalendarView
来获取自定义日历视图并不困难。
检查我创建的视图(只需按照文档说明):
当然,你可以超越它。
答案 2 :(得分:5)
我编写了自己的CalendarView,就像在Google日历中看到的那样。提供在月份,听众,添加事件之间滚动的能力,并且是一个gradle项目:https://github.com/SundeepK/CompactCalendarView。它使用绘画来完成所有绘图,因此它很容易改变以做任何你想做的事情。
答案 3 :(得分:4)
以下项目是迄今为止我见过的最佳选择,允许在日历上的日期单元格中显示特定于事件的视觉效果:
答案 4 :(得分:0)
如何更改某些日期颜色 - 使用 android:dateTextAppearance和setDateTextAppearance(int)? 它曾被描述过: change color of calendar dates android 你可以尝试一下