Android的上一个优雅,高度自定义,性能高效的日历控件,完美支持周视图,支持标记,自定义颜色,农历等,任意控制月视图显示.Canvas绘制,速度快,占用内存低,,支持简单定制即可实现任意自定义布局,自定义UI,支持收缩展开,性能非常高效,这个控件内存和效率优势相当明显,而且真正做到收缩+展开,适配多种场景,支持同时多种颜色标记日历事务,你真的想不到日历还可以如此优雅!更多参考用法请移步演示,演示实现了4个精美的自定义效果。
支持英文版本
英文版
摇篮
compile 'com.haibin:calendarview:3.2.4'
<dependency>
<groupId>com.haibin</groupId>
<artifactId>calendarview</artifactId>
<version>3.2.4</version>
<type>pom</type>
</dependency>
列举一些常用的是否支持的问题
- 是否支持周末等颜色单独?支持的,需要你自定义MonthView,WeekView,Calendar.isWeekend()可以自行判断是否周末,使用对应的画笔即可
- 是否支持与其他控件联动?支持的,假如你喜欢小米的日历日期快速跳转,那么你也可以使用类似的控件通过调用各种CalendarView.scrollToCalendar(); 函数即可
- 是否支持日期长按?支持的,长按回调你可以做一些诸如声音,震动效果,框架并不提供,不利于解耦
- 是否支持用图片作为点击效果?支持的,但你需要会drawBitmap
- 是否支持网格显示?当然是支持的,看你怎么绘制
- 是否支持WeekBar星期日与日期联系?支持的,你需要自定义WeekBar,实现onDateSelected(日历日历,布尔isClick);函数即可
- 因此,只要在MonthView,WeekView里面出现的UI,什么五角星,贝塞尔曲线,图片等等,都是支持的,只要你会绘制,UI美不美,真的就看你了
混淆proguard的规则
- keepclasseswithmembers类* { 公共 < init >(android.content 。上下文); }
完整用法教程请参照博客教程
https://juejin.im/post/5a6743836fb9a01caa20aefc
如果你需要完全定制UI,参考演示,简单几步即可绘制你需要的效果,一般只需要实现三个回调函数绘制你需要的特效即可,自定义日历UI需要同时自定义周视图,真正做到热插拔效果,方便大众定制各种UI需求
效果预览
中国式变态需求风格
收缩展开的魅族风格效果
下标和多彩风格
进度条风格
星系图风格
快速年份月份切换
使用方法
< COM .haibin.calendarview.CalendarLayout 机器人:layout_width = “ match_parent ” 机器人:layout_height = “ match_parent ” 机器人:取向 = “垂直” 的应用程序:default_status = “收缩” 的应用程序:calendar_show_mode = “ only_week_view ” 应用:calendar_content_view_id = “ @ + id / recyclerView “> < COM .haibin.calendarview.CalendarView 机器人:ID = “ @ + ID / calendarView ” 机器人:layout_width = “ match_parent ” 机器人:layout_height = “ WRAP_CONTENT ” 机器人:背景 = “ #FFF ” 应用:month_view = “ com.haibin。 calendarviewproject.simple.SimpleCalendarCardView “ app :week_view = ”com.haibin.calendarviewproject.simple.SimpleWeekView “ app :week_bar_view = ” com.haibin.calendarviewproject.EnglishWeekBar “ app :calendar_height = ” 50dp “ app :current_month_text_color = ”#333333 “ app :current_month_lunar_text_color = ” # CFCFCF “ app :min_year = “ 2004 ” app :other_month_text_color = “#e1e1e1 ” 应用:scheme_text = “假” 的应用程序:scheme_text_color = “#333 ” 的应用程序:scheme_theme_color = “#333 ” 的应用程序:selected_text_color = “ #FFF ” 应用:selected_theme_color = “#333 ” 的应用程序:week_background = “ #FFF ” 应用:month_view_show_mode = “ mode_only_current ” 应用:week_text_color = “#111 ” /> < 机器人 .support.v7.widget.RecyclerView 机器人:ID = “ @ + ID / recyclerView ” 机器人:layout_width = “ match_parent ” 机器人:layout_height = “ match_parent ” 机器人:背景 = “#d4d4d4 ” /> </ com .haibin.calendarview.CalendarLayout>