仿携程日历控件

RecycleView实现日历列表,其中每个itemView纯cavas绘制。

github地址 欢迎 start Issues

支持以下功能

日历选中和不可选样式

行间距以及颜色设置

最大可以选择多少天

悬停月份展示

单选和范围选择

Demo

单选

image

范围选择

image

使用

XML文件

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="30dp" />

android:id="@+id/calendar_view"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#FFFFFF"

sy:dividerHeight="5dp"

sy:firstSelectDayText="入住"

sy:lastSelectDayText="离店"

sy:selectMaxRange="28" />

XML 自定义属性

MonthLableView(星期)

属性

类型

描述

lableWeekendTextColor

color

周末字体颜色

lableTextColor

color

周一到周五字体颜色

lableTextSize

color

字体大小

CalendarView(日历)

属性

类型

描述

isShowMonthTitleView

boolean

是否显示MonthTitleView默认显示

textColor

color

日历天字体颜色

selectTextColor

color

选中字体颜色

weekendTextColor

color

周末字体颜色

selectBgColor

color

选中背景颜色

disTextColor

color

不可选字体颜色

sameTextColor

color

今天字体颜色

preTextColor

color

已过期字体颜色

topTextColor

color

节日字体颜色

selectRangebgColor

color

选中间隔背景颜色

selectMaxRange

integer

限制最大可选多少天

monthPaddingLeft

dimension

月份paddingLeft

monthPaddingTop

dimension

月份paddingTop

monthPaddingRight

dimension

月份paddingRight

monthPaddingBottom

dimension

月份paddingBottom

monthMarginLeft

dimension

月份MarginLeft

monthMarginTop

dimension

月份MarginTop

monthMarginRight

dimension

月份MarginRight

monthMarginBottom

dimension

月份MarginBottom

textSize

dimension

日历天字体大小

topTextSize

dimension

节日字体大小

bottomTextSize

dimension

选中底部文案字体大小

firstTopMargin

dimension

节日距离顶部距离

secondTopMargin

dimension

天距离节日底部距离

thirdTopMargin

dimension

选中文案距离天底部距离

dividerHeight

dimension

日历每一行间距

dividerColor

color

日历每一行间距颜色

firstSelectDayText

string

第一次选中底部文案

lastSelectDayText

string

最后一次选中底部文案

selectStyle

enum

选中样式(rectangle 矩形 roundRectangle 圆角矩形)

cornerRadius

dimension

当选中为圆角矩形时圆角半径

isSingleSelect

boolean

是否单选默认为范围选择

代码

//设置初始化选中日期

calendarView.setCalendarSelectDay(calendarSelectDay);

//绘制monthTitleView 当isShowMonthTitleView为false时不需要设置

calendarView.setMonthTitleViewCallBack(new MonthTitleViewCallBack() {

@Override

public View getMonthTitleView(int position, Date date) {

View view = View.inflate(MainActivity.this, R.layout.layout_month_title, null);

TextView tvMonthTitle = view.findViewById(R.id.tv_month_title);

tvMonthTitle.setText(formatDate("yyyy年MM月", date));

return view;

}

});

//设置选中事件

calendarView.setOnCalendarSelectDayListener(new CalendarView.OnCalendarSelectDayListener() {

@Override

public void onCalendarSelectDay(CalendarSelectDay calendarSelectDay) {

CalendarDay firstSelectDay = calendarSelectDay.getFirstSelectDay();

CalendarDay lastSelectDay = calendarSelectDay.getLastSelectDay();

if (firstSelectDay != null) {

String firstSelectDateStr = formatDate("yyyy-MM-dd", firstSelectDay.toDate());

tvFirstSelectDate.setText(firstSelectDateStr);

}

if (lastSelectDay != null) {

String lastSelectDateStr = formatDate("yyyy-MM-dd", lastSelectDay.toDate());

tvLastSelectDate.setText(lastSelectDateStr);

}

}

});

android 仿旅游日历控件_仿携程日历控件相关推荐

  1. android 携程日历控件,仿携程酒店日历组件for小程序

    仿携程酒店日历 接受日历组件开发之前,本来是拒绝的,日历组件,表单组件绝逼是前端开发的一个噩梦,尤其要做好一个旅游项目的日历,产品的收货标准只有一条,你看携程都实现了哦, MMP的.要在小程序中实现携 ...

  2. android怎么监听多点触摸_什么是多点触控技术,有哪些用途

    自从乔布斯将触控技术用于苹果手机上,很多的手机厂商纷纷效仿,触控技术几乎成为手机的"标配".其实,触控技术早就存在,只是一直未能大面积用于各种设备中,本文将带您认识神奇的触控技术. ...

  3. java 日历签到功能_基于jquery实现日历签到功能

    使用Jquery实现每日签到功能 基于jquery实现日历签到功能 jquery记事日历插件e-calendar 思路:1.获取当月第一天是周几2.获取当月共几天 通过获取下月的第0天,即是当月最后一 ...

  4. Android自定义日期区间选择日期范围选则的日历,实现类似美团携程选择酒店入住日期和离店日期的日历效果

    前言 有时候我们会有需要在日历上选择一个日期范围的这种需求,先选一个开始日期,然后再选结束日期,如酒店入住日期和离店日期选择,美团携程这种预定酒店的app都有这种操作.那么这种需求该如何实现呢?先看一 ...

  5. netty 工控网关_开源纯C#工控网关+组态软件(九)定制Visual Studio

    一.引子 因为最近很忙(lan),很久没发博了.不少朋友对那个右键弹出菜单和连线的功能很感兴趣,因为VS本身是不包含这种功能的. 大家想这是什么鬼,怎么我的设计器没有,其实这是一个微软黑科技,如果用好 ...

  6. 用asp.net实现日历打卡_清单 | 2021年日历请查收

    刷朋友圈发现有人已经在晒2021年的日历了,实在是有点恍惚.今年开场太过魔幻,起起伏伏,一晃居然也快要结束了.好像没有哪一年会像今年这样,让我格外期待一切赶紧过去,好开启下一年.新一年的日历我也准备开 ...

  7. mpython掌控板_【mPython】掌控板感应灯

    本帖最后由 rzegkly 于 2020-5-20 21:38 编辑 <游子吟> 唐•孟郊 慈母手中线,游子身上衣. 临行密密缝,意恐迟迟归. 谁言寸草心,报得三春晖. 微信图片_2020 ...

  8. mpython掌控板_用mpython学掌控板(初识mpython)

    在暑假期间,我们学校创客社团的学生们使用张珍老师们编写的<掌控智造>课程开展了一轮的学习,学生们对掌控板屏幕显示与物联网的体验是非常好的. 2019年11月9日,掌控板生态发布会,发布了新 ...

  9. 关于Android组件化深度分析(七)携程+支付宝

    后续等组件化更新完,更新: Shadow插件化     ASM其他     Systrace使用与解析     字节码相关 一丶从携程APP看组件化架构实践 提到了使用数据总线或者 URL 总线实现页 ...

  10. 安卓开发仿微信图片拖拽_仿微信朋友圈发表图片拖拽和删除功能

    原标题:仿微信朋友圈发表图片拖拽和删除功能 中国联通在香港公布了上市公司2017年中期业绩.2017年上半年,公司主要业绩指标持续向好,收入稳步回升,服务收入达到人民币1,241.1亿元,同比增长3. ...

最新文章

  1. 2020-10-26runtime error: member access within null pointer of type ‘struct ListNode‘ (solution.cpp)错
  2. 设计模式 — 行为型模式 — 状态模式
  3. 【HDU】3441 Rotation
  4. 编写一个自己的完全C语言版本的memset函数,并且评价这个实现的性能和可移植性。
  5. 硬件三人行-开关电源学习笔记-1
  6. 海量数据处理利器之Hash——在线邮件地址过滤
  7. python3讨论交流地_讨论 - 廖雪峰的官方网站
  8. Linux命令之 umount -- 卸载文件系统
  9. android webview javascript不执行,WebView中的JavaScript为什么不执行?
  10. 物联网架构----EMQ-Hook了解、连接Kafka发送消息
  11. linux上运行onedrive,教你如何在Linux中同步微软 OneDrive
  12. python打开txt文件找不到-Docker Python脚本找不到文件
  13. MySQL 5.6 dump/load buffer pool实验
  14. 2010年imac从移动硬盘启动Win10
  15. 扩散模型 (Diffusion Model) 简要介绍与源码分析
  16. 当前最新it技术了解
  17. XP系统计算机桌面图标不见,XP电脑开机桌面上没有图标怎么办?
  18. 怎样快速提高计算机能力,如何提高算术能力?不借助计算机、笔、纸等工具,怎么能快速心算出多位数计算结果?如:489x85 如:128965-98542有什么口决及速算的方法的详细步骤?...
  19. 山东大学程序设计思维与实践 四月模拟:TT与可怜的猫
  20. 数据结构--一元多项式

热门文章

  1. android手机测试”
  2. 【Linux operation 18】 - SUSE 12 SP5在线安装Docker
  3. JavaScript 计数器
  4. 用matlab如何画中国地图,利用matlab画中国地图的几种方法
  5. C语言中对程序设计的理解,浅论《C语言程序设计》的学习方法
  6. 机器学习和模式识别怎么区分?
  7. Google翻译Chrome插件
  8. 智能电视的“假聪明”与“真智慧”
  9. SDL游戏之路(十一)--按钮制作
  10. 偶尔文艺-关于想要转录MIDI从YAMAHA到MAC