Calendar 自定义日历控件

来源:互联网 发布:仿水滴互助源码 编辑:程序博客网 时间:2024/05/16 19:44

CalendarView

介绍

代码地址:https://github.com/09xuanjian/CalendarView

这里写图片描述

这是一个日历控件,很多时候我们需要把一些信息通过时间戳的方式展示给用户。日历是一个好的选择。

这个日历有以下几个特点:

1.可以设置当天的日期的背景,如一个圆。

2.可以设置一些特殊日期的背景,一共提供了三个接口,如一些签到的展示,签到的那一天背景特殊化。还有如果连续签到多少天了有礼物,然后有礼物那天的背景也是不一样的。

3.和万年历有区别,这个日历时可以设定显示多少个月的,如我只需要从这个月开始显示未来的六个月。或者显示这个月的前后一个月,这个三个月的时间。

4.还有就是日历里面的字体大小颜色都是可以按照你自己喜好进行设置。

5.可以控制title中是否可以有按钮来翻页。

6.可以控制是否显示翻页小圆点的显示,也可以定义小圆点的样式。

使用介绍

首先介绍一下构成

主要的使用的就是自定义控件 CommonCalendar。CommonCalendar 继承LinearLayout.
在年月显示,还有星期的显示是默认显示出来的。而日历主题部分时通过一个ViewPager 来承载,每一个page
是一个月份。而每一个page中,又是通过GridView 来完成的,一个page中20来30个格子,每个格子就是我们需要的
每一天了。说起来有点复杂,其实就是把一个大的东西,分开了一部分一部分来完成,就构成了一个整体了。

具体方法操作

  1. 设置特殊背景,可以不设置
    /**

    • 设置特殊背景效果,setAllReturnDay,里面设置特殊日期的时间
    • @category 没有特殊直接设置是 null
    • @param drawable1 特殊1
    • @param drawable2 更加特殊的
    • @param drawable3 更加特殊的

      */

    public void setSpecialDrawable(Drawable drawable1,Drawable drawable2,Drawable drawable3) {
    }

  2. 设置今天的背景,不设置有默认的
    /**

    • 设置特殊日期刚好是今天的背景
    • @param drawable

    */

    public void setSpecialTodayDrawable(Drawable drawable)

    因为太多了不把所有的方法一一列出来,具体有哪些方法的使用可以参看mainGroupActivity ,这些方法是都有默认值的,如果你不进行设置,会有默认的显示。

PS

有些地方是要注意的不然可能使用会出现问题。

  1. 对于日历的颜色字体背景这些的设置,必须在一开始初始化日历的的时候就设置。因为这是一开始就定义好的。

  2. 如果要设置进去默认是显示第几页(方法:setDefaultPager),需要在setTheDay(这个初始化日历的时间),这个方法之前设置,因为里面有相关的定义默认显示第几页,不然设置就没有效果了。不然默认是第一页。

  3. 是否有滑动点接口(setButtomPointVisiable),需要在setTheDay 后调用,不然默认是不显示出来。

最后

总结一下,如果你需要一个只显示几个月的日历,如果你需要日历的style都是可以定义的,如果你需要你的日历是可以有特殊背景显示的,这个日历适合你。不过这个日历还有很多不足之处,如果大家有什么好的修改,请指教。最后的最后,转载请注明出处。
0 0