Material Calendar View 开源项目学习(一)- 总览

Material Calendar View 是一个非常好用的Android日历库,可以覆盖我们我们大部分的日历相关的个性化开发需求;它同时也是一个非常适合学习的优秀项目,源码中应用了许多Android开发者进阶第一步所必须掌握的基础知识和设计模式。这几篇博客就是对这些知识的总结和记录。

一、功能一览

  1. 丰富的可定制项:
    (1) 按月显示、按周显示
    (2) 周几是第一天
    (3) 日历的宽度
    (4) 日期的宽度和高度
    (5) 日历的字体大小和颜色
    (6) 日期的背景图片
    (7) 是否显示非本月日期
    (8) 日期的选中字体颜色
    (9) 日期的选中背景图片

  2. 事件监听:
    (1) 选中日期
    (2) 当前显示月份改变

二、基本视图

MaterialCalendarView是日历的视图类,我们在布局文件中使用的就是它。
MaterialCalendarView是一个容器,直接继承自ViewGroup,由两部分组成:

Material Calendar View 开源项目学习(一)- 总览_第1张图片
MaterialCalendarView

  1. 顶部。顶部是一个LinearLayout,其余部分是一个ViewPager。
    顶部布局比较简单,就是由左右两个 ImageView和中间的TextView组成。

  2. 日历部分。日历一般都可以左右滑动的,所以不用多想,肯定是ViewPager。日期视图的创建主要是在ViewPagerPagerAdapter中。
    MaterialCalendarView提供两种日历显示模式,一种是“月历”模式,另一种是“周历”模式。作者分别使用了MonthPagerAdapterWeekPagerAdapter来实现这两种不同的视图,可以在布局文件中使用app:mcv_calendarMode来指定:


当然也支持在程序中动态的去改变:

// mcv是MaterialCalendarView的实例
mcv.setDisplayMode(CalendarMode.WEEK)

三、小结

这一小节比较短,只简要的介绍了一下 Material Calendar View 是个什么项目,大概有哪些功能,视图的基本构成是什么样的。详细的使用方法大家可以去看Github中的文档,说的非常详细。
下一节想要记录的是日历以及月历界面的界面是怎么绘制出来的。

【后记】
第一次系统的记录自己学习一个开源项目的过程和知识,不知从何写起、怎么编排、要写多细,排版更是非常糟糕。如果有幸被开发者阅读并发现写的不对的、没讲清楚的或者想要更进一步了解交流的,请留言多多指教。

下一篇:
Material Calendar View 开源项目学习(二)- 日历的视图

你可能感兴趣的:(Material Calendar View 开源项目学习(一)- 总览)