我想展示一个日历,并在日期上使用不同的颜色显示事件,类似于默认的日历应用程序。但是我在默认的日历视图上没有看到任何此类API。
有人可以请指导我该如何继续进行吗?我应该扩展默认的日历并添加自己的功能吗?还是应该使用5x5文本框、PageViewer和片段?
我想展示一个日历,并在日期上使用不同的颜色显示事件,类似于默认的日历应用程序。但是我在默认的日历视图上没有看到任何此类API。
有人可以请指导我该如何继续进行吗?我应该扩展默认的日历并添加自己的功能吗?还是应该使用5x5文本框、PageViewer和片段?
内置的CalendarView小部件不支持更改月视图中日历单元格的颜色。请参见源代码。
您可以尝试以下两种方法:
从CalendarView扩展并自己实现onDraw方法。您需要重新实现所有现有的绘图行为,包括以下4个方法:
protected void onDraw(Canvas canvas) { drawBackground(canvas); drawWeekNumbersAndDates(canvas); drawWeekSeparators(canvas); drawSelectedDateVerticalBars(canvas); }
实现自己的CalendarView以允许自定义单元格。我建议这个项目是一个好的起点,因为它已经支持自定义单元格。
CalendarView
,并允许轻松定制日期单元格的可绘制项吗?我看到很多建议的库,但它们实现了自己的日历视图,而不是扩展自Android的CalendarView
。 - Shuwn Yuan TeeonDraw
方法。 - CoolMind上个月,我通过Caldroid https://github.com/roomorama/Caldroid成功实现了一个小型日历视图。
这个库使用起来很灵活,而且不难实现自定义的日历视图,只需要从CalendarView
中实现onDraw
方法即可。
可以检查一下我创建的视图(只需按照文档进行操作):
当然,你还可以进一步拓展它。
如何通过使用android:dateTextAppearance和setDateTextAppearance(int)更改特定日期的颜色呢? 曾经有这样的描述: change color of calendar dates android 你可以试试这个方法