【问题标题】:Android CalendarView for Showing Events用于显示事件的 Android CalendarView
【发布时间】:2013-05-15 03:21:48
【问题描述】:

我想显示一个日历,其中包含在日期上使用不同颜色的事件,类似于默认日历应用程序。但我在默认日历视图上看不到任何此类 API。

谁能指导我正确的方向如何进行?我应该扩展默认日历并添加自己的功能吗?还是应该将 5x5 文本框与 PageViewer 和片段一起使用?

【问题讨论】:

标签: android android-calendar calendarview


【解决方案1】:

内置的 CalendarView 小部件不会公开更改月视图中日历单元格颜色的功能。见the source

您可以尝试以下方法:

  1. 从 CalendarView 扩展并自己实现 onDraw。您必须重新实现所有现有的绘图行为,包括这 4 个方法:

    受保护的无效onDraw(帆布画布){ 绘制背景(画布); drawWeekNumbersAndDates(画布); drawWeekSeparators(画布); drawSelectedDateVerticalBars(画布); }
  2. 实现您拥有的允许自定义单元格的 CalendarView。我建议this project 是一个很好的起点,因为它已经支持自定义单元格。

【讨论】:

  • 其他 CalendarView 类库项目:android-calendar-view, Caldroid
  • 有谁知道任何扩展 Android 的 CalendarView 的库,可以轻松自定义 Date 的单元格可绘制对象?我看到许多建议的库,但它们实现了自己的日历视图,这些视图不是从 Android 的 CalendarView 扩展而来的。
  • 目前没有onDraw方法。
【解决方案2】:

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

它使用起来很灵活,而且从CalendarView 实现onDraw 获得自定义日历视图并不难。

检查我创建的视图(只需遵循文档):

当然你可以超越这个。

【讨论】:

    【解决方案3】:

    我已经编写了自己的 CalendarView,就像在 Google 日历中看到的一样。能够在月份、监听器、添加事件之间滚动,并且是一个 gradle 项目:https://github.com/SundeepK/CompactCalendarView。它使用绘画来完成所有绘图,因此应该很容易更改为您想要的任何东西。

    【讨论】:

      【解决方案4】:

      以下项目是迄今为止我见过的最好的替代方案,可以在日历的日期单元格中显示特定于事件的视觉效果:

      https://github.com/tyczj/ExtendedCalendarView

      【讨论】:

        【解决方案5】:

        如何更改某些日期的颜色 - 通过使用 android:dateTextAppearance 和 setDateTextAppearance(int)? 曾经这样描述: change color of calendar dates android 你可以试试这个

        【讨论】:

        • 我不想改变单元格的颜色。我想根据每个事件的时间绘制单元格的一部分。
        猜你喜欢
        • 1970-01-01
        • 2012-07-15
        • 2017-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-24
        相关资源
        最近更新 更多