All Projects → Airsaid → Calendarview

Airsaid / Calendarview

Android 平台上继承 View 实现的自定义日历控件

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Calendarview

Calendarview
Calendar View Library
Stars: ✭ 71 (-44.96%)
Mutual labels:  view, calendar
Flutterweekview
Displays a highly customizable week view (or day view) which is able to display events, to be scrolled, to be zoomed-in & out and a lot more !
Stars: ✭ 130 (+0.78%)
Mutual labels:  view, calendar
Imagezoom
An Android library that makes any view to be zoomable.
Stars: ✭ 118 (-8.53%)
Mutual labels:  view
React Native Event Calendar
A React-Native iOS style calendar implemented using VirtualizedList.
Stars: ✭ 127 (-1.55%)
Mutual labels:  calendar
Wxa Plugin Calendar
小程序插件-预约日历插件-微信小程序日历插件
Stars: ✭ 124 (-3.88%)
Mutual labels:  calendar
Calendar
📆 calendar 日历
Stars: ✭ 119 (-7.75%)
Mutual labels:  calendar
Calendarview
日历 仪表盘 圆盘,提供全新RecyclerView日历,功能更加强大。
Stars: ✭ 125 (-3.1%)
Mutual labels:  view
Calendar
微信小程序日历 酒店日历选择 带公历节日
Stars: ✭ 116 (-10.08%)
Mutual labels:  calendar
Cosin
Android loading view library 📊🍭
Stars: ✭ 129 (+0%)
Mutual labels:  view
Skcalendarview
SKCalendarView是一个高可控性的日历基础组件,为了提高应用的自由度,默认只提供了日历部分的视图封装,但不涵盖切换月份按钮、年月分显示等非关键性控件,但请不要担心,SKCalendarView为你提供了多样性的API,你可以很轻松的拿到这些信息去展示在你自己的自定义控件中。不仅如此,SKCalendarView还为你封装了公历、农历、节假日以及中国24节气的核心算法,即使你觉得默认的视图并不合胃口,也可以直接快速的利用这套算法创造出一个全新的日历控件。最后,SKCalendarView还提供了一些简单的切换动画,如果你不喜欢它,可以忽略掉,用自己的,这里完全不会受到任何限制。
Stars: ✭ 121 (-6.2%)
Mutual labels:  calendar
Sms Backup Plus
Backup Android SMS, MMS and call log to Gmail / Gcal / IMAP
Stars: ✭ 1,626 (+1160.47%)
Mutual labels:  calendar
Gsimplecal
Simple and lightweight GTK calendar (BSD license)
Stars: ✭ 121 (-6.2%)
Mutual labels:  calendar
Cosmocalendar
📅 CosmoCalendar is a fully customizable calendar with a wide variety of features and displaying modes.
Stars: ✭ 1,547 (+1099.22%)
Mutual labels:  calendar
Widget
A set of widgets based on jQuery&&javascript. 一套基于jquery或javascript的插件库 :轮播、标签页、滚动条、下拉框、对话框、搜索提示、城市选择(城市三级联动)、日历等
Stars: ✭ 1,579 (+1124.03%)
Mutual labels:  calendar
Chrono
Date and time library for Rust
Stars: ✭ 1,780 (+1279.84%)
Mutual labels:  calendar
Calendar.vim
A calendar application for Vim
Stars: ✭ 1,675 (+1198.45%)
Mutual labels:  calendar
React Numpad
A numpad for number, date and time, built with and for React.
Stars: ✭ 117 (-9.3%)
Mutual labels:  calendar
Rcalendarpicker
RCalendarPicker A date picker control, Calendar calendar control, select control, calendar, date selection, the clock selection control. 日历控件 ,日历选择控件,日历,日期选择,时钟选择控件
Stars: ✭ 121 (-6.2%)
Mutual labels:  calendar
Dry View
Complete, standalone view rendering system that gives you everything you need to write well-factored view code.
Stars: ✭ 124 (-3.88%)
Mutual labels:  view
Devextreme Reactive
Business React components for Bootstrap and Material-UI
Stars: ✭ 1,800 (+1295.35%)
Mutual labels:  calendar

CalendarView

Android 平台上继承 View 实现的自定义日历控件.

效果图

image

快速开始

在你的 build.gradle 文件里添加:

compile 'com.github.airsaid:calendarview:1.0.3'

用法示例

1、布局中:

<com.github.airsaid.library.widget.WeekView
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:layout_marginTop="10dp"
    android:background="@android:color/white"
    app:wv_textColor="#333333"
    app:wv_textSize="14sp"/>
    
<com.github.airsaid.library.widget.CalendarView
    android:id="@+id/calendarView"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    android:background="@android:color/white"
    app:cv_dayBackground="@drawable/bg_day_un_selected"
    app:cv_selectDayBackground="@drawable/bg_day_selected"
    app:cv_selectTextColor="@android:color/white"
    app:cv_textColor="#333333"
    app:cv_textSize="14sp"/>

2、设置监听器:

  • 设置点击监听:
mCalendarView.setOnDataClickListener(new CalendarView.OnDataClickListener() {
            @Override
            public void onDataClick(@NonNull CalendarView view, int year, int month, int day) {
                Log.e("test", "year: " + year);
                Log.e("test", "month,: " + (month + 1));
                Log.e("test", "day: " + day);
            }
        });
  • 设置日期选中或取消选中监听:
mCalendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
    @Override
    public void onSelectedDayChange(@NonNull CalendarView view, boolean select, int year, int month, int day) {
        if(select){
            Toast.makeText(getApplicationContext()
                    , "选中了:" + year + "年" + (month + 1) + "月" + day + "日", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(getApplicationContext()
                    , "取消选中了:" + year + "年" + (month + 1) + "月" + day + "日", Toast.LENGTH_SHORT).show();
        }
    }
});

除此之外,还有一些其他的额外方法:

  • 设置已选天数数据:
List<String> data = new ArrayList();
// 这里的日期格式可以通过 setDateFormatPattern() 方法设置,默认是 yyyyMMdd
data.add("20171229");
data.add("20171230");
mCalendarView.setSelectDate(data);
  • 设置显示指定的日期(如当前月的下个月):
Calendar calendar = mCalendarView.getCalendar();
calendar.add(Calendar.MONTH, 1);
mCalendarView.setCalendar(calendar);
  • 设置字体:
mCalendarView.setTypeface(typeface);
  • 设置是否可以点击:
mCalendarView.setClickable(boolean);

  • 设置是否可以改变日期状态:
mCalendarView.setChangeDateStatus(boolean);

属性 & 方法

属性名 方法 作用
cv_textColor setTextColor(@ColorInt int textColor) 设置默认文字颜色
cv_selectTextColor setSelectTextColor(@ColorInt int textColor) 设置选中后文字颜色
cv_textSize setTextSize(float textSize) 设置默认文字大小
cv_selectTextSize setSelectTextSize(float textSize) 设置选中后文字大小
cv_dayBackground setDayBackground(Drawable background) 设置默认天的背景
cv_selectDayBackground setSelectDayBackground(Drawable background) 设置选中后天的背景
cv_dateFormatPattern setDateFormatPattern(String pattern) 设置日期格式化格式
cv_isChangeDateStatus setChangeDateStatus(boolean isChanged) 设置是否能够改变日期状态 (默认或选中状态)

TODO

  • [ ] 添加长按事件。
  • [ ] 自定义天的视图。
  • [ ] 添加当前天的自定义配置。

联系我

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].