Android中日历控件MaterialCalendarView
首先给出这个控件在github的地址:github地址
接下来我们看一下效果图:
![](https://img.haomeiwen.com/i6372170/632aa12a32de17db.png)
这个控件基本上满足我们对日历的大部分需求。
然后我们看使用,如果对原理想要了解的,可以自己去看一下源码。
1.我们先添加上依赖
compile'com.prolificinteractive:material-calendarview:1.4.3'
2.在我们的布局上直接写
![](https://img.haomeiwen.com/i6372170/c4f4cf52f83be96e.png)
写完这个之后基本上我们的这个控件就实现了。可以跑一下看效果。
3.介绍一下这个控件的一些常用的方法
![](https://img.haomeiwen.com/i6372170/306d64ed59d38df6.png)
这些方法就是这个日历控件的主要设置方法,上面的标准都已经写好了,我就不再介绍了。
![](https://img.haomeiwen.com/i6372170/6031781bf2b2c077.png)
这是这个空间的日期点击事件的监听。
5.接下来就是这个控件的一个比较厉害的地方,它可以实现一些用户自己的效果在日期上,
比如我们可以给一些特殊的日期下面加点,比如:
![](https://img.haomeiwen.com/i6372170/300ac1564c90e320.jpg)
这个效果是通过它的addDecorators()实现的
![](https://img.haomeiwen.com/i6372170/77f4ec4a94882a99.png)
addDecorators()方法中的参数我们需要实现一个接口 DayViewDecorator
![](https://img.haomeiwen.com/i6372170/ab2e2d973b52c14e.png)
这个接口中主要有两个方法:
![](https://img.haomeiwen.com/i6372170/91969a06e33e0d1f.png)
![](https://img.haomeiwen.com/i6372170/d3916fc624e6348e.png)
shoudDecorate()方法判断我们需要特殊显示的日期。如果直接返回true,那么所有的日期都做特殊的显示。
decorate()方法中我们做特殊显示的处理。在这个方法中,我们主要给这个view设置一个span
![](https://img.haomeiwen.com/i6372170/f8ac71441b2c4aec.png)
这个span参数我们要实现LineBackgraoudSpan这个接口
![](https://img.haomeiwen.com/i6372170/39f5486a4f664250.png)
这个接口中就只有一个方法drawBackground()
![](https://img.haomeiwen.com/i6372170/c80888295e57199c.png)
这个方法让我们去绘制我们想要的效果,给这个日期绘制出我们想要的效果,
![](https://img.haomeiwen.com/i6372170/34096f8d5d96a402.png)
这里的参数 left right bottom top 都是这个日期显示的位置。我们可以根据这个位置绘制出我们想要绘制的位置。
以上就是日历控件MaterialCalendarView的简单使用介绍,当然,这个控件和还有很多的方法没有介绍到,感兴趣的可以自己再去学习一下。