仿小米日历

仿MIUI日历

一款仿miui日历,月视图,周视图滑动切换,时间从1901-01-01到2099-12-31

支持自定义时间区间

支持农历,节假日,指示圆点,默认视图,周的第一天设置等

支持单一月日历、周日历设置默认选中和默认不选中

项目地址

https://github.com/yannecer/NCalendar

效果图

效果图

下载demo:

http://fir.im/7lv4

使用方法

Gradle

compile 'com.necer.ncalendar:ncalendar:2.4.0'

布局文件

<com.necer.ncalendar.calendar.NCalendar
        android:id="@+id/ncalendar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:defaultCalendar="Month"
        app:firstDayOfWeek="Sunday"
        app:selectCircleColor="#3388ff">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

 </com.necer.ncalendar.calendar.NCalendar>
       

日历包含一个月日历MonthCalendar,一个周日历WeekCalendar和一个滑动切换不同视图的NCalendar,单一日历请使用MonthCalendar或者WeekCalendar

NCalendar日历包含了周日历和月日历,通过滑动切换不同的视图,交互效果仿miui日历,尽可能的实现miui的交互逻辑。

NCalendar内部需要一个实现了NestedScrollingChild的子类,RecyclerViewNestedScrollView都可以。

主要Api

1、监听
ncalendar.setOnCalendarChangedListener(new OnCalendarChangedListener() {
            @Override
            public void onCalendarChanged(DateTime dateTime) {
                //日历变化回调
            }
        });
2、跳转日期
参数为 yyyy-MM-dd 格式的日期

ncalendar.setDate("2017-12-31"); 
3、回到今天
ncalendar.toToday(); 
4、月-->周 周-->月
ncalendar.toWeek();
ncalendar.toMonth();
5、上一月、下一月、上一周、下一周
ncalendar.toNextPager();
ncalendar.toLastPager();
6、添加指示圆点
List<String> list = new ArrayList<>();
list.add("2017-09-21");
list.add("2017-10-21");
list.add("2017-10-1");
list.add("2017-10-15");
list.add("2017-10-18");
list.add("2017-10-26");
list.add("2017-11-21");
ncalendar.setPoint(list);

7、支持自定义属性,设置NCalendar默认视图、一周的第一天是周日还是周一等
NCalendar默认视图,Month 或者 Week,默认是 Month

app:defaultCalendar="Month"
app:defaultCalendar="Week"


设置一周开始是周一还是周日,Sunday 或者 Monday ,默认是周日Sunday

app:firstDayOfWeek="Sunday"
app:firstDayOfWeek="Monday" 

8、支持自定义时间区间
app:startDate="2010-10-01"
app:endDate="2018-10-31"
9、单一月日历、周日历设置默认不选中
false为不选中,只有点击或者跳转日期才会选中,默认为true

monthcalendar.setDefaultSelect(false);

支持的属性:

属性 描述
solarTextColor 公历日期的文本颜色
lunarTextColor 农历日期的文本颜色
solarTextSize 公历日期的文本大小
lunarTextSize 农历日期的文本大小
hintColor 不是本月的日期文本颜色
selectCircleColor 选中日期和当天的圆颜色
selectCircleRadius 选中和当天圆环半径
isShowLunar 是否显示农历
hollowCircleColor 选中空心圆中间的颜色
hollowCircleStroke 选中空心圆圆环粗细
calendarHeight 日历高度,在NCalendar中使用
defaultCalendar NCalendar日历默认视图
firstDayOfWeek 每周第一天是周日还是周一
duration 自动折叠时间
isShowHoliday 是否显示节假日
holidayColor 节假日“休”字颜色
workdayColor 工作日日“班”字颜色
pointSize 指示圆点大小
pointColor 指示圆点颜色
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一款仿miui,仿小米,日历,周日历,月日历,月视图、周视图滑动切换,农历,Andriod Calendar , ...
    慕涵盛华阅读 1,864评论 0 8
  • 项目地址:https://github.com/landscapeside/DragCalendar 先看效果图:...
    岸边的风景阅读 3,711评论 16 22
  • 高仿小米日历 https://github.com/wuda615/StickyCalendar [TOC] 使用...
    wuda615阅读 572评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,956评论 25 709
  • List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。List集合允许使用重复元素,可以...
    navy_legend阅读 329评论 0 0