A fully customizable calendar with a wide variety of features and displaying modes
CosmoCalendar
CosmoCalendar is a fully customizable calendar with a wide variety of features and displaying modes.
Usage
compile 'com.github.applikeysolutions:cosmocalendar:1.0.4'
Customization
Common
- calendarOrientation - Possible values: HORIZONTAL, VERTICAL
- calendarBackgroundColor
- monthTextColor
- otherDayTextColor
- dayTextColor
- firstDayOfTheWeek
- weekDayTitleTextColo
- showDaysOfWeek - Defines if we need to display week day titles for every month
- showDaysOfWeekTitle - Defines if we need to display week day title for whole calendar
Selection
- selectionType - Possible values: SINGLE, MULTIPLE, RANGE, NONE
- selectedDayTextColor
- selectedDayBackgroundColor
- selectedDayBackgroundStartColor - Background color of START day from selected range
- selectedDayBackgroundEndColor - Background color of END day from selected range
- selectionBarMonthTextColor
Current day
- currentDayTextColor
- currentDayIconRes
- currentDaySelectedIconRes
Navigation buttons
- previousMonthIconRes
- nextMonthIconRes
Weekend days
- weekendDays
calendarView.setWeekendDays(new HashSet(){{
add(Calendar.THURSDAY);
add(Calendar.TUESDAY);
}});
- weekendDayTextColor
Connected days
You can add some days for example holidays:
//Set days you want to connect
Calendar calendar = Calendar.getInstance();
Set<Long> days = new TreeSet<>();
days.add(calendar.getTimeInMillis());
...
//Define colors
int textColor = Color.parseColor("#ff0000");
int selectedTextColor = Color.parseColor("#ff4000");
int disabledTextColor = Color.parseColor("#ff8000");
ConnectedDays connectedDays = new ConnectedDays(days, textColor, selectedTextColor, disabledTextColor);
//Connect days to calendar
calendarView.addConnectedDays(connectedDays);
and customize them:
- connectedDayIconRes;
- connectedDaySelectedIconRes;
- connectedDayIconPosition (TOP/BOTTOM);
calendarView.setConnectedDayIconPosition(ConnectedDayIconPosition.TOP);
Disabled days
You can add days so that you can not select them:
Set<Long> disabledDaysSet = new HashSet<>();
disabledDaysSet.add(System.currentTimeMillis());
calendarView.setDisabledDays(disabledDaysSet);
Disabled days criteria
- month criteria range:
//from 1st to 5th day of the month
calendarView.setDisabledDaysCriteria(new DisabledDaysCriteria(1, 5, DisabledDaysCriteriaType.DAYS_OF_MONTH));
- week criteria range:
//from Monday to Friday
DisabledDaysCriteria criteria = new DisabledDaysCriteria(Calendar.MONDAY, Calendar.FRIDAY, DisabledDaysCriteriaType.DAYS_OF_WEEK);
calendarView.setDisabledDaysCriteria(criteria);
- disabledDayTextColor - Text color of disabled day
Month change listener
calendarView.setOnMonthChangeListener(new OnMonthChangeListener() {
@Override
public void onMonthChanged(Month month) {
}
});
Calendar dialog
new CalendarDialog(this, new OnDaysSelectionListener() {
@Override
public void onDaysSelected(List<Day> selectedDays) {
}
}).show();