Calendar 开源项目总结
一、Calendar
开源项目地址:https://github.com/xiaojianglaile/Calendar
Android日历 仿小米 华为 滴答清单 365日历(农历),周视图 月视图 平滑滚动 节假日 五六行周切换 week or month calendar。
使用方法:
- MonthCalendarView的使用
<com.jeek.calendar.widget.calendar.month.MonthCalendarView android:id="@+id/mcvCalendar" android:layout_width="match_parent" android:layout_height="@dimen/small_month_calendar_height" app:month_day_text_size="@integer/small_calendar_text_size" app:month_selected_circle_color="@color/color_select_date_dialog_edit_text_bg_focus" app:month_selected_circle_today_color="@color/color_select_date_dialog_edit_text_bg_focus" app:month_show_lunar="true" app:month_show_task_hint="false" app:month_show_holiday_hint="true" app:month_text_size="@integer/small_calendar_text_size"/>
- ScheduleLayout的使用
layout_schedule.xml文件,必须包含MonthCalendarView、WeekCalendarView和ScheduleRecyclerView,可以直接引用改文件作为布局。
ScheduleLayout: app:default_view="week" <!-默认周视图-> app:default_view="month" <!-默认月视图-> app:auto_change_month_row="false" <!-不自动改变五六行-> app:auto_change_month_row="true" <!-自动改变五六行->
- 设置日期监听
slSchedule.setOnCalendarClickListener(new OnCalendarClickListener() { @Override public void onClickDate(int year, int month, int day) { //监听获得点击的年月日 } });
- 跳转到今天
slSchedule.getMonthCalendar().setTodayToView();
- 跳转到某一天
slSchedule.initData(year, month, day);
效果图如下:
二、NCalendar
开源项目地址:https://github.com/yannecer/NCalendar
一款安卓日历,仿miui,钉钉,华为的日历,万年历、365、周日历,月日历,月视图、周视图滑动切换,农历,节气,Andriod Calendar , MIUI Calendar,小米日历。
特点:
- 3种常见日历交互方式,MIUI系统日历:miui9、miui10、华为emui,miui9和钉钉日历类似,华为emui和365日历类似
- 月周滑动切换,月周不选中
- 支持多选,设置多选的数量
- 支持设置默认视图,默认周日历或者月日历
- 支持周状态固定,下拉刷新等
- 支持设置一周开始的是周一还是周日
- 可设置日期区间,默认区间从1901-01-01到2099-12-31
- 支持农历,节气、法定节假日等
- 支持添加指示点及设置指示点位置
- 支持各种颜色、距离、位置等属性
- 支持日历和列表之间添加view
- 支持替换农历、颜色等
- 支持自定义日历页面
- 支持内部TargetView为任意View
- 支持日历拉伸功能
效果图:
其他更多的效果图详见项目地址。