android自定义View之日历控件

      想要知道关于更多自定义View的实例,请参考:android自定义View索引

先上个效果图,走着。

    好了,看完效果图是不是觉得很炫酷呢,不但可以在一个月内进行选取,跨月也是可以的。

    如果没有做过日历的同学可能是没什么思路的,那么我再给张图,走着。。。


看完这个是不是有点想法了,好像没那么难了,主要使用到了几个基本控件和一个GridView。

啊!你不知道GridView?

那没办法了,自己百度去吧。

下面开始我的表演

一般的自定义View需要继承View,这个就不需要了,我们直接继承了RelativeLayout。

然后重写他的几个构造器,一般的话重写前俩个即可。


这里我写了个initView,那么我们所有的视图基本上都在这里面进行处理。

具体的代码比较长,这里就不方便贴了,我讲几个重点:


1:月份前面的空格部分

2:子项点击效果的处理

3:子项应该显示什么背景图

4:点击翻页时数据的更新

下面一一

简单分析

1:月份前面的空格部分

    这里我们看见空格其实就是正常的GridView子项,只是去掉了背景和文字,那么我们在传入的List数据里面弄几个零,当我们发现集合为零时就不显示背景和文字即可。

2:子项点击效果的处理

    实际上就是GridView的子项点击处理,处理其实没有什么大不了,只是需要注意我们的手指是第几次按下去即可,可以用个变量代替,我暂且用了status,那么就我们上面的效果图status应该有三种状态,第一次按下显示选择起始点,第二次按下结束点,第三按下取消所有的状态,嗯,做到思路清晰也没什么难的。

3:子项应该显示什么背景图

    这里我们的子项应该有四种状态

一是无背景图;

二是起始点的背景图;

三是结束点背景图;

四是中间选中部分。

四种我们只需新建四个drawable文件即可,绘制不难。

4:点击翻页时数据的更新

    这里说的翻页就是指上面的月份左右选择时,那么我们需要做的就是更新上面的标题部分和下面的日期部分即可。

    最后的我还提供了一个接口给大家,用来返回你获取到的数据

public interface CalendarTime{

void showData(SaveData fromData, SaveData toData);

}

    返回了俩个时间,一个是起始时间,一个结束时间,大家需要使用时只需要设置监听器即可

public void setOnTimeLisenter(CalendarTime calendarTime) {

this.calendarTime = calendarTime;

}

    每当子项被点击的时候都会进行返回,不过具体要什么时候返回你们都是可以自行进行更改的,没毛病。

    讲了这么多大家应该有个疑惑,那就是日期的数据从哪里来的?


    不要慌,我这里提供了CalendarUtils一个工具类,可以提供各种关于日期的处理和获取,不过最终都是结合系统的Calendar类进行使用的,大家可以去看一看。

    说了这么多大家应该心里也有点数了,是不是想跃跃欲试,下面的话我代码也会贴上,自己可以对着看一下。

源码点击我哦:轻点哦

                 喜欢我的文章的,请点击关注我哦。万学冬的简书

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容