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