Android CalendarView for Showing Events

£可爱£侵袭症+ 提交于 2019-11-26 03:57:44

问题


I want to show a calendar with events using different colors on the date similar to default Calendar application. But I don\'t see any such API on the default calendar view.

Can anyone please direct me on right direction how to proceed with this? Should I extend default calendar and add my own functionality? Or should I use 5x5 text boxes with PageViewer and fragments?


回答1:


The built in CalendarView widget doesn't expose the ability to change the color of the calendar cells in month view. See the source.

You might try the following approaches:

  1. Extend from CalendarView and implement onDraw yourself. You'll have to reimplement all the existing drawing behavior, including these 4 methods:

    protected void onDraw(Canvas canvas) {
        drawBackground(canvas);
        drawWeekNumbersAndDates(canvas);
        drawWeekSeparators(canvas);
        drawSelectedDateVerticalBars(canvas);
    }
    
  2. Implement you own CalendarView that allows customizing cells. I suggest this project as a good place to get started, since it already supports custom cells.




回答2:


Last month I was able to implement a little calendar view using Caldroid https://github.com/roomorama/Caldroid.

It's flexible to use and it's not so hard to get a custom calendar view as implementing onDraw from the CalendarView.

Check the view I created (just by following the documentation):

And of course you can go beyond that.




回答3:


I've written my own CalendarView much like the one seen in Google calendars aswell. Gives the ability to scroll between months, listeners, add events and is a gradle project: https://github.com/SundeepK/CompactCalendarView. It uses paint to do all the drawing so it should easy to change to do anything you want.




回答4:


The following project is the best alternative I have seen so far to allow for displaying event-specific visuals in a date cell on the calendar:

https://github.com/tyczj/ExtendedCalendarView




回答5:


How about changing certain dates colour - by using android:dateTextAppearance and setDateTextAppearance(int)? It was once described: change color of calendar dates android You may try this out



来源:https://stackoverflow.com/questions/16556254/android-calendarview-for-showing-events

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!