πŸ“… Material Design Calendar compatible with API 11+

Overview

> Prettier and simpler Material Design CalendarView

License: MIT Android Arsenal Build Status OpenCollective OpenCollective

MaterialCalendarView is a prettier and simpler, material design calendar that allows full customization and it's backwards compatible with API 11+.

Screenshots

Installation

Gradle

  • Add it in your root build.gradle at the end of repositories:
repositories {
	maven { 
	    url "https://jitpack.io"
	}
}
  • Add the dependency:
dependencies {
    compile 'com.github.BlackBoxVision:material-calendar-view:v1.5.8'
}

Maven

  • Add the JitPack repository to your maven file.
<repository>
     <id>jitpack.io</id>
     <url>https://jitpack.io</url>
</repository>
  • Add the dependency in the form
<dependency>
    <groupId>com.github.BlackBoxVision</groupId>
    <artifactId>material-calendar-view</artifactId>
    <version>v1.5.8</version>
</dependency>

SBT

  • Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
  • Add the dependency in the form:
libraryDependencies += "com.github.BlackBoxVision" % "material-calendar-view" % "v1.5.8"

Usage example

In your layout.xml file:

<io.blackbox_vision.materialcalendarview.view.CalendarView
	android:id="@+id/calendar_view"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:background="@color/colorPrimary">
</io.blackbox_vision.materialcalendarview.view.CalendarView>

This example shows all the possible customization around Material Calendar View:

<io.blackbox_vision.materialcalendarview.view.CalendarView
	android:id="@+id/calendar_view"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	app:calendarIsMultiSelectDayEnabled="false"
	app:calendarIsOverflowDatesVisible="true"
	app:calendarBackgroundColor="@color/colorPrimary"
	app:calendarTitleTextColor="@color/colorAccent"
	app:calendarCurrentDayTextColor="@color/white"
	app:calendarDayOfWeekTextColor="@color/grey"
	app:calendarDayOfMonthTextColor="@android:color/white"
	app:calendarDisabledDayBackgroundColor="@color/colorPrimary"
	app:calendarDisabledDayTextColor="@android:color/darker_gray"
	app:calendarSelectedDayBackgroundColor="@color/colorAccent"
	app:calendarTitleBackgroundColor="@color/colorPrimary"
	app:calendarWeekBackgroundColor="@color/colorPrimary"
	app:calendarCurrentDayBackgroundColor="@color/teal500"
	app:calendarWeekendTextColor="@color/colorAccent"
	app:calendarButtonBackgroundColor="@color/colorAccent"
	app:calendarWeekendDays="saturday|sunday">
</io.blackbox_vision.materialcalendarview.view.CalendarView>

Then, in your Activity.java or Fragment.java initialize the calendar:

calendarView = (CalendarView) findViewById(R.id.calendar_view);

calendarView.shouldAnimateOnEnter(true)
	.setFirstDayOfWeek(Calendar.MONDAY)	
	.setOnDateClickListener(this::onDateClick)
	.setOnMonthChangeListener(this::onMonthChange)
	.setOnDateLongClickListener(this::onDateLongClick)
	.setOnMonthTitleClickListener(this::onMonthTitleClick);

if (calendarView.isMultiSelectDayEnabled()) {
	calendarView.setOnMultipleDaySelectedListener(this::onMultipleDaySelected);
}

calendarView.update(Calendar.getInstance(Locale.getDefault()));

Issues

If you found a bug, or you have an answer, or whatever. Please, open an issue. I will do the best to fix it, or help you.

Contributing

Of course, if you see something that you want to upgrade from this library, or a bug that needs to be solved, PRs are welcome!

Backers

Support us with a monthly donation and help us continue our activities. [Become a backer]

Sponsors

Become a sponsor and get your logo on our README on Github with a link to your site. [Become a sponsor]

License

Distributed under the MIT license. See LICENSE for more information.

Comments
  • nextButton and backButton event handler

    nextButton and backButton event handler

    hello I'm sorry to bother you again I want change background color in code, but I can't I am using calendarView.setCalendarBackgroundColor(R.color.colorPrimary) for change back color but don't change.

    Could you help me please. Thank you.

    opened by MansoorJafari 12
  • Calendar View enhancements

    Calendar View enhancements

    • Added attribute to distinguish text color for dayOfWeek from dayOfMonth
    • Fixed alignment for dayOfMonth under dayOfWeek
    • Cleaned up layouts and moved to Styles.

    @JonatanSalas Please Review

    opened by udaysrinath 8
  • Adding a helper to enable jump to today for consumers

    Adding a helper to enable jump to today for consumers

    @JonatanSalas Please Review

    Adding a helper to enable the consumers to jump to today. The reason to add this is the currentMonthIndex is not visible to the consumer.

    Fix for https://github.com/BlackBoxVision/material-calendar-view/issues/41

    opened by udaysrinath 7
  • Setting Date not working properly on calendar view

    Setting Date not working properly on calendar view

    I have a button which when pressed causes the calendarView to go to the current date and returns the selected date. There is no method on the calendarView which allows me to do this currently.

    Here is what I did: Navigate a few months out and then the jumpToToday button is pressed, executing the code below:

      public void setCurrentDateForCalendarView() {
         calendarView.update(Calendar.getInstance(Locale.getDefault()));
         calendarView.invalidate();
        }
    

    Issue : Calling the update on the calendarViewdoes not update the currentMonthIndex (It needs to set to 0).

    Am I missing something? It seems there is no way to set a specified date and jump to the specific month, day on the calendar view.

    bug high priority 
    opened by udaysrinath 6
  • Query

    Query

    If I set debugger and scroll from today's month (Feb 2017) to last month (Jan 2017), I see that CalendarUtils.obtainDays gets the dates 29, 30,31 as 29-1-2017(and the like) instead of 29-0-2017. It's not causing any problem as of now, but I was just wondering what the problem might be. Thanks.

    opened by priyamsaikia 6
  • Breaks when Locale is set to Chinese (PRC)

    Breaks when Locale is set to Chinese (PRC)

    Log as below:

    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime: FATAL EXCEPTION: main
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime: Process: com.example.app, PID: 28222
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime: android.view.InflateException: Binary XML file line #8: Error inflating class com.samsistemas.calendarview.widget.CalendarView
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.createView(LayoutInflater.java:633)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.example.app.ui.fragments.LeaveScheduleFragment.onCreateView(LeaveScheduleFragment.java:42)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:211)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5333)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:  Caused by: java.lang.reflect.InvocationTargetException
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Constructor.newInstance(Native Method)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.createView(LayoutInflater.java:607)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.example.app.ui.fragments.LeaveScheduleFragment.onCreateView(LeaveScheduleFragment.java:42)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:211)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5333)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1016)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:  Caused by: java.lang.StringIndexOutOfBoundsException: length=2; regionStart=0; regionLength=3
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.String.startEndAndLength(String.java:504)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.String.substring(String.java:1333)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.samsistemas.calendarview.widget.CalendarView.initWeekLayout(CalendarView.java:282)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.samsistemas.calendarview.widget.CalendarView.refreshCalendar(CalendarView.java:402)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.samsistemas.calendarview.widget.CalendarView.init(CalendarView.java:247)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.samsistemas.calendarview.widget.CalendarView.<init>(CalendarView.java:169)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Constructor.newInstance(Native Method)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.createView(LayoutInflater.java:607)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at com.example.app.ui.fragments.LeaveScheduleFragment.onCreateView(LeaveScheduleFragment.java:42)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1965)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1078)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1259)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1624)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:517)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Handler.handleCallback(Handler.java:739)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:95)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:211)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5333)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
    11-06 12:13:53.405 28222-28222/com.example.app E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
    

    It seems the problem lies in the initWeekLayout() method within CalendarView.java, where values within String[] weekDaysArray initialized from (new DateFormatSymbols(this.getLocale())).getShortWeekdays() was shorter than the index in dayOfTheWeekString.substring(0, 3) which causes the exception.

    opened by maddie 4
  • Adding a ListView under the calendar used for events

    Adding a ListView under the calendar used for events

    Hello, first of all thank you very much for your material design calendar, I think it's awesome! I'm using it for my appointments app, added a new activity when clicking on the "+" fab button and saving the appointment in a local db. What I would like to do is just to show the appointments in a list by clicking a day in the calendar. In order to do that I created a ListView under the calendar and deleted your textView. What happens here is that I can only show just one (the first created) item in the list despite there are more than one appointments for the day selected.I double checked SqlLite and ArrayList, they contains the right number of items so it's just a layout problem. Is there something I could do in the xml for that? Thanks!

    opened by mbaldassarri 3
  • Remove allowBackup from manifest

    Remove allowBackup from manifest

    Library setting "android:allowBackup=true" is an implicit change to application behavior. If the library absolutely needs this to work, then it should be documented and not allow app overwriting.

    @JonatanSalas Can you remove this? https://github.com/BlackBoxVision/material-calendar-view/blob/master/app/src/main/AndroidManifest.xml#L6

    opened by udaysrinath 2
  • Current day is never deselected

    Current day is never deselected

    Is this a normal behaviour? When calendar starts "Today" is selected but if I select another day, the calendar shows two days as selected, the current day (Today) and the day selected by me. How can I make "Today" to be deselected when user selects another date? device-2016-04-20-145258

    enhancement 
    opened by CarlosJJR 2
  • Material Calendar View 2.0 Features

    Material Calendar View 2.0 Features

    This is a reminder list of features to add when incrementing the development stage.

    Features:

    • Add support for multiday events
    • Add support to impact the events from Google Calendar API
    • Provide a layout with no TitleView and swipe support
    • Support Behaviour when working with a CoordinatorLayout
    • Improve performance when loading List using static method accesors
    opened by JonatanSalas 2
  • Date selection is wrong when the language is English(United Kingdom)

    Date selection is wrong when the language is English(United Kingdom)

    Touching on the date on the calendar does not select the touched date. It will select +6th day. If I touch on 4th, it will select 10th. This happens when the language is English(United Kingdom). I tried to swap to different months and swap back to the current month, and it works fine again. I guess there is something wrong with the initializing state. You can contact me at [email protected] for more details. Thanks for your help!

    opened by jiwwang 1
  • Set Selected Day Background Color issues

    Set Selected Day Background Color issues

    whatsapp image 2018-12-12 at 4 10 54 pm

    I don't know what's wrong with setSelectedDayBackgroundColor,I am just setting the day in for loop but in in first postion it's setting correct color but not on rest postion.does anyone know how I can set the color of the days which i want to set?

    opened by hateshkumar 0
  • The last day of disabled date will become clickable after moving back and forth

    The last day of disabled date will become clickable after moving back and forth

    Let say if I set the disabled date at 10th of October, after moving back and forth of the calender's month, 10th of October becomes clickable, while 9th of October remains unclickable.

    opened by LeeBoonKong 0
  • Picking Multiple Dates from the Calendar

    Picking Multiple Dates from the Calendar

    Hello.

    When selecting multiple dates there is is no option to deselect selected dates and also when re selecting date datelist added that date again. Also when selecting one date from current month and then try to select another date in next month previous selected date gets deselected.

    Please. if you can help me! Thanks

    opened by chetan2609 0
Releases(v1.5.8)
  • v1.5.8(Oct 8, 2018)

    • Added attribute to distinguish text color for dayOfWeek from dayOfMonth.
    • Fixed alignment for dayOfWeek and dayOfMonth, cleanup layouts, moved to styles.
    • Differentiate currentDayTextColor uniquely from selectedDayTextColor, enabling current day to have a different text color even when it is not the selected date.
    Source code(tar.gz)
    Source code(zip)
  • v1.5.7(Nov 17, 2017)

  • v1.5.6(Nov 17, 2017)

  • v1.5.5(Aug 14, 2017)

  • v1.5.4(Aug 10, 2017)

  • v1.5.3(Jul 28, 2017)

  • v1.5.2(Jan 28, 2017)

  • v1.5.1(Jan 23, 2017)

    Changelog:

    • Add support to saveInstanceState/restoreInstanceState of currentMonthIndex
    • Add getters for isOverflowDateVisible and isMultipleDaySelectedEnabled
    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Jan 22, 2017)

    Changelog:

    • Rename all attributes under attrs.xml to get more consistence
    • Make method setCurrentDay private and rename it to drawCurrentDay
    • Modified setters to follow Builder Pattern
    • Fix #20, now currentDay is deselected in case you select other date. This is the correct behavior when multiple day selection is disabled
    • Added support for multiple day selection, this change close #22
    • Fix issue #30
    • Fix issue #31
    • Another minor bug fixes, and code improvements
    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Jan 20, 2017)

    Changelog

    • Modified method name refreshCalendar to update in order to get more consistence.
    • Added method shouldAnimateOnEnter, with 3 method variants that let you customize the method behavior.
    • Improvements on XML layouts.
    • Refactored the way that the Calendar generates the AdapterView.
    • Now, the selected dates display a Circular shape instead of a Square shape.
    • Removed unused getters.
    • Added some new helpers methods under CalendarUtils.
    • Added HeaderView to start delegating behavior to another view.
    • Removed Decorator support in DayView
    • Bug fixes and other code improvements.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Jan 17, 2017)

    Changelog:

    • General Package refactor
    • Update code, and general improvements
    • Update dependencies
    • Add support for OnMonthTitleClick event thanks to the last PR
    Source code(tar.gz)
    Source code(zip)
  • v1.2.3(Feb 1, 2016)

    Changelog:

    • Added interface OnDateLongClickListener for long clicks events.
    • Modified interface OnDateSelectedListener, now it's called OnDateClickListener.
    • Deleted some unused classes.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.2(Nov 6, 2015)

    BugFix:

    • Fixed issue: https://github.com/jonisaa/MaterialCalendarView/issues/1 Now you are able to display the calendar with Chinese locale.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.1(Nov 4, 2015)

    • Deleted unused resources to reduce library file size.
    • Added RobotoFonts to the Assets folder.
    • Added a String file handling all path to RobotoFonts.
    • Added a Util class to get the Roboto typefaces called TypefaceUtil.
    • Better performance on Swipe by making some adjustments.
    • Added setBackButtonColor method, it allows you to change back arrow color.
    • Added setNextButtonColor method, it allows you to change next arrow color
    • Added setBackButtonDrawable method, it allows you to change back button drawable.
    • Added setNextButtonDrawable method, it allows you to change next button drawable.
    • Modified the month title show format from "MONTH_NAME" to "MONTH_NAME + ' ' + YEAR"
    • BugFix: Retain current day style even if you swipe to another month and come back to actual month.
    • Added method findViewByDate(), it receives a Date as param and returns a DayView object (Custom TextView). It lets you style dayView as you want.
    • Refactor of some methods in order to clarify code readability.
    • markCurrentDay is now renamed to setCurrentDay().
    • markCurrentDateAsSelected is now renamed to setDateAsSelected().
    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Nov 1, 2015)

  • v1.1.0(Nov 1, 2015)

    Added Swipe gestures detection and Fixed Bugs encountered. Added setter customization Next and previous month navigation Allow various customization including background color for day, week and title Set custom typeface using setTypeFace() method. Show hide next previous month overflow days Set custom day options for start day of week. By default it is set to Calendar.SUNDAY Unlimited customizations for day of the month using custom Decorators. Allow you to handle event when user changes month and day selection.

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0-alpha(Nov 1, 2015)

    Added Swipe gestures detection Added setter customization Next and previous month navigation Allow various customization including background color for day, week and title Set custom typeface using setTypeFace() method. Show hide next previous month overflow days Set custom day options for start day of week. By default it is set to Calendar.SUNDAY Unlimited customizations for day of the month using custom Decorators. Allow you to handle event when user changes month and day selection.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Oct 31, 2015)

    Currently it supports the following features:

    Next and previous month navigation
    Allow various customization including background color for day, week and title
    Set custom typeface using setTypeFace() method.
    Show hide next previous month overflow days
    Set custom day options for start day of week. By default it is set to Calendar.SUNDAY
    Unlimited customizations for day of the month using custom Decorators.
    Allow you to handle event when user changes month and day selection.
    
    Source code(tar.gz)
    Source code(zip)
Owner
BlackBox Vision
We are the Agency that will accompany you in the Digital Transformation of your Company
BlackBox Vision
Android calendar view inspired by Sunrise calendar and iOS7 stock calendar

SilkCal Android calendar view inspired by Sunrise calendar and iOS7 stock calendar. Usage Add compile 'me.nlmartian.silkcal:library:0.1.1' to your dep

JunGuan Zhu 385 Nov 25, 2022
Kalendar - A calendar to integrate Calendar with Custom design in your jetpack compose project

Kalendar - An Elementary Compose Calendar. This is a calendar to integrate Calen

Himanshu Singh 494 Jan 2, 2023
Standalone Android widget for picking a single date from a calendar view.

TimesSquare for Android Standalone Android widget for picking a single date from a calendar view. Usage Include CalendarPickerView in your layout XML.

Square 4.4k Dec 20, 2022
A better calendar for Android

Caldroid Caldroid is a fragment that display calendar with dates in a month. Caldroid can be used as embedded fragment, or as dialog fragment. User ca

Roomorama 1.4k Jan 5, 2023
An android library which provides a compact calendar view much like the one used in google calenders.

CompactCalendarView CompactCalendarView is a simple calendar view which provides scrolling between months. It's based on Java's Date and Calendar clas

SundeepK 1.5k Dec 9, 2022
Android calendar view (like card)

android-calendar-card (Google Play Demo) Android calendar view (like card) Simple and easy to modify Author: MichaΕ‚ Szwarc #CalendarCardPager License

MichaΕ‚ Szwarc 473 Nov 10, 2022
A lightweight monthly calendar view for Android, fully written in Kotlin. Designed to meet the minimum demands for typical calendars.

Light Calendar View A lightweight monthly calendar view for Android, fully written in Kotlin. Designed to meet the minimum demands for typical calenda

Recruit Marketing Partners Co.,Ltd 444 Dec 9, 2022
A TimelineView that will help you create event timelines in apps just like the Google Calendar DayView

TimelineView A TimelineView that will help you create event timelines in apps just like the Google Calendar DayView A library that allows you to creat

Amit Krishna A 10 May 12, 2022
CalEF (Calendar Entry Formatter) : Select an entry in Android-Kalender and send/share the entry's content as human readable text.

CalEF (Calendar Entry Formatter) Select an entry in Android-Kalender and send/share the entry's content as human readable text. Usually calendar entri

k3b 6 Aug 17, 2022
JetCalendarView - A calendar library for Jetpack Compose

JetCalendar WIP 2022 Hit Refresh! Calendar view ❀️ Jetpack Compose License Copyr

Anmol Verma 8 Aug 17, 2022
Fully customizable Calendar/DatePicker for Android/Kotlin

AMCalendar - Android Date (Range) Picker AMCalendar is a fully customisable widget for picking dates and ranges based on the native Calendar. It's an

null 6 Oct 18, 2022
A Material design back port of Android's CalendarView

Material Calendar View A Material design back port of Android's CalendarView. The goal is to have a Material look and feel, rather than 100% parity wi

Prolific Interactive 5.8k Jan 5, 2023
Android interval timer app using compose + compose navigation, dagger hilt, room, kotlin coroutines + flow and mvvm design pattern.

What's InTime? ⏳ InTime is an interval timer application using android jetpack components and a long running service. The purpose of this project is t

P. 46 Oct 10, 2022
A material Date Range Picker based on wdullaers MaterialDateTimePicker

Material Date and Time Picker with Range Selection Credits to the original amazing material date picker library by wdullaer - https://github.com/wdull

Supratim 1.3k Dec 14, 2022
A material Date Range Picker based on wdullaers MaterialDateTimePicker

Material Date and Time Picker with Range Selection Credits to the original amazing material date picker library by wdullaer - https://github.com/wdull

Supratim 1.3k Dec 14, 2022
A material-styled android view that provisions picking of a date, time & recurrence option, all from a single user-interface.

SublimePicker A customizable view that provisions picking of a date, time & recurrence option, all from a single user-interface. You can also view 'Su

Vikram 2.3k Jan 4, 2023
Monet color system with Material You

Monet Google's Monet color system (Android 12 Beta 2) library. Usage Jetpack Compose Generate Monet color palette monetColorsOf(Color, darkTheme) Loca

null 5 Feb 16, 2022
πŸ“… Material Design Calendar compatible with API 11+

> Prettier and simpler Material Design CalendarView MaterialCalendarView is a prettier and simpler, material design calendar that allows full customiz

BlackBox Vision 365 Nov 21, 2022
πŸ“… Material Design Calendar compatible with API 11+

> Prettier and simpler Material Design CalendarView MaterialCalendarView is a prettier and simpler, material design calendar that allows full customiz

BlackBox Vision 366 Jan 1, 2023
Android calendar view inspired by Sunrise calendar and iOS7 stock calendar

SilkCal Android calendar view inspired by Sunrise calendar and iOS7 stock calendar. Usage Add compile 'me.nlmartian.silkcal:library:0.1.1' to your dep

JunGuan Zhu 385 Nov 25, 2022