android日历控件(Android自定义日历)

2022-07-22 21:11:54  浏览:357  作者:管理员
  • android日历控件(Android自定义日历)

  • 【商户信息】

  • 类目:知识大全


  • 联系人:


  • 微信号:

  • Q Q 号:

  • 手机号:

  • 浏览量:

    357


【货源详情】


Adroid定制优雅高效的日历控件,完美支持周视图,支持标记、颜色、农历等,并任意控制月视图的显示、任意日期的监听条件、周开始等。 Canvas绘图速度非常快,内存消耗很低,可以通过简单的定制实现任意的定制布局、定制UI,支持收缩展开,效率非常高。 该控件具有显著的内存和效率优势,而且真正实现了收缩展开,适应了多种场景,同时支持多种颜色标记日历事务。 没想到日历这么优雅吧。 要想更多参考用法,请转到Demo吧。 Demo实现了4种美丽的定制效果。

dependencies {

implementation ‘com.github.Visen123:CalendarView:V1.0’

}

混淆程序规则

-keepclasseswithmembers class * {

公共init (Android.content.context );

}

或者根据目的混淆

- keepclassyourprojectpath.month view {

公共init (Android.content.context );

}

- keepclassyourprojectpath.week bar {

公共init (Android.content.context );

}

- keepclassyourprojectpath.week view {

公共init (Android.content.context );

}

特别的,请注意不要复制这三个路径,自行替换您自己的自定义路径

app : month _ view=' com.Yan yiyun.calendarviewproject.simple.simplecalendarcardview '

app : week _ view=' com.Yan yiyun.calendarviewproject.simple.simpleweekview '

app : week _ bar _ view=' com.Yan yiyun.calendarviewproject.englishweekbar '

使用方法

com.Yan yiyun.calendar view.calendar layout

安卓: layout _ width=' match _ parent '

Android : layout _ height=' match _ parent '

安卓: orientation=' vertical '

app:default_status='shrink '

app : calendar _ show _ mode=' only _ week _ view '

app : calendar _ content _ view _ id=' @ id/recycler view '

com.Yan yiyun.calendar view.calendar view

Android : id=' @ id/calendar view '

安卓: layout _ width=' match _ parent '

安卓: layout _ height=' wrap _ content '

android:background='#fff '

app : month _ view=' com.Yan yiyun.calendarviewproject.simple.simplecalendarcardview '

app : week _ view=' com.Yan yiyun.calendarviewproject.simple.simpleweekview '

app : week _ bar _ view=' com.Yan yiyun.calendarviewproject.englishweekbar '

app:calendar_height='50dp '

app : current _ month _ text _ color=' # 33333 '

app : current _ month _ lunar _ text _ color=' # cfcfcf '

app:min_year='2004 '

app : other _ month _ text _ color=' # e1e1'

app:scheme_text='假'

app : scheme _ text _ color=' # 333 '

app : scheme _ theme _ color=' # 333 '

app : selected _ text _ color=' # fff '

app : selected _ theme _ color=' # 333 '

app:week_start_with="mon" app:week_background="#fff" app:month_view_show_mode="mode_only_current" app:week_text_color="#111" /> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#d4d4d4" /> </com.yanyiyun.calendarview.CalendarLayout> CalendarView attrs <declare-styleable name="CalendarView"> <attr name="calendar_padding" format="dimension" /><!--日历内部左右padding--> <attr name="month_view" format="color" /> <!--自定义类日历月视图路径--> <attr name="week_view" format="string" /> <!--自定义类周视图路径--> <attr name="week_bar_height" format="dimension" /> <!--星期栏的高度--> <attr name="week_bar_view" format="color" /> <!--自定义类周栏路径,通过自定义则 week_text_color week_background xml设置无效,当仍可java api设置--> <attr name="week_line_margin" format="dimension" /><!--线条margin--> <attr name="week_line_background" format="color" /><!--线条颜色--> <attr name="week_background" format="color" /> <!--星期栏的背景--> <attr name="week_text_color" format="color" /> <!--星期栏文本颜色--> <attr name="week_text_size" format="dimension" /><!--星期栏文本大小--> <attr name="current_day_text_color" format="color" /> <!--今天的文本颜色--> <attr name="current_day_lunar_text_color" format="color" /><!--今天的农历文本颜色--> <attr name="calendar_height" format="string" /> <!--日历每项的高度,56dp--> <attr name="day_text_size" format="string" /> <!--天数文本大小--> <attr name="lunar_text_size" format="string" /> <!--农历文本大小--> <attr name="scheme_text" format="string" /> <!--标记文本--> <attr name="scheme_text_color" format="color" /> <!--标记文本颜色--> <attr name="scheme_month_text_color" format="color" /> <!--标记天数文本颜色--> <attr name="scheme_lunar_text_color" format="color" /> <!--标记农历文本颜色--> <attr name="scheme_theme_color" format="color" /> <!--标记的颜色--> <attr name="selected_theme_color" format="color" /> <!--选中颜色--> <attr name="selected_text_color" format="color" /> <!--选中文本颜色--> <attr name="selected_lunar_text_color" format="color" /> <!--选中农历文本颜色--> <attr name="current_month_text_color" format="color" /> <!--当前月份的字体颜色--> <attr name="other_month_text_color" format="color" /> <!--其它月份的字体颜色--> <attr name="current_month_lunar_text_color" format="color" /> <!--当前月份农历节假日颜色--> <attr name="other_month_lunar_text_color" format="color" /> <!--其它月份农历节假日颜色--> <!-- 年视图相关 --> <attr name="year_view_month_text_size" format="dimension" /> <!-- 年视图月份字体大小 --> <attr name="year_view_day_text_size" format="dimension" /> <!-- 年视图月份日期字体大小 --> <attr name="year_view_month_text_color" format="color" /> <!-- 年视图月份字体颜色 --> <attr name="year_view_day_text_color" format="color" /> <!-- 年视图日期字体颜色 --> <attr name="year_view_scheme_color" format="color" /> <!-- 年视图标记颜色 --> <attr name="min_year" format="integer" /> <!--最小年份1900--> <attr name="max_year" format="integer" /> <!--最大年份2099--> <attr name="min_year_month" format="integer" /> <!--最小年份对应月份--> <attr name="max_year_month" format="integer" /> <!--最大年份对应月份--> <!--月视图是否可滚动--> <attr name="month_view_scrollable" format="boolean" /> <!--周视图是否可滚动--> <attr name="week_view_scrollable" format="boolean" /> <!--年视图是否可滚动--> <attr name="year_view_scrollable" format="boolean" /> <!--配置你喜欢的月视图显示模式模式--> <attr name="month_view_show_mode"> <enum name="mode_all" value="0" /> <!--全部显示--> <enum name="mode_only_current" value="1" /> <!--仅显示当前月份--> <enum name="mode_fix" value="2" /> <!--自适应显示,不会多出一行,但是会自动填充--> </attr> <!-- 自定义周起始 --> <attr name="week_start_with"> <enum name="sun" value="1" /> <enum name="mon" value="2" /> <enum name="sat" value="7" /> </attr> <!-- 自定义选择模式 --> <attr name="select_mode"> <enum name="default_mode" value="0" /> <enum name="single_mode" value="1" /> <enum name="range_mode" value="2" /> </attr> <!-- 当 select_mode=range_mode --> <attr name="min_select_range" format="integer" /> <attr name="max_select_range" format="integer" /> </declare-styleable> CalendarView api public void setRange(int minYear, int minYearMonth, int minYearDay, int maxYear, int maxYearMonth, int maxYearDay) ;//置日期范围 public int getCurDay(); //今天 public int getCurMonth(); //当前的月份 public int getCurYear(); //今年 public boolean isYearSelectLayoutVisible();//年月份选择视图是否打开 public void closeYearSelectLayout();//关闭年月视图选择布局 public void showYearSelectLayout(final int year); //快速弹出年份选择月份 public void setOnMonthChangeListener(OnMonthChangeListener listener);//月份改变事件 public void setOnYearChangeListener(OnYearChangeListener listener);//年份切换事件 public void setOnCalendarSelectListener(OnCalendarSelectListener listener)//日期选择事件 public void setOnCalendarLongClickListener(OnCalendarLongClickListener listener);//日期长按事件 public void setOnCalendarLongClickListener(OnCalendarLongClickListener listener, boolean preventLongPressedSelect);//日期长按事件 public void setOnCalendarInterceptListener(OnCalendarInterceptListener listener);//日期拦截和日期有效性绘制 public void setSchemeDate(Map<String, Calendar> mSchemeDates);//标记日期 public void update();//动态更新 public Calendar getSelectedCalendar(); //获取选择的日期 public void scrollToCurrent();//滚动到当前日期 public void scrollToCurrent(boolean smoothScroll);//滚动到当前日期 public void scrollToYear(int year);//滚动到某一年 public void scrollToPre();//滚动到上一个月 public void scrollToNext();//滚动到下一个月 public void scrollToCalendar(int year, int month, int day);//滚动到指定日期 public Calendar getMinRangeCalendar();//获得最小范围日期 public Calendar getMaxRangeCalendar();//获得最大范围日期 public void setBackground(int monthLayoutBackground, int weekBackground, int lineBg) public void setTextColor(int curMonthTextColor,int otherMonthColor,int lunarTextColor) public void setSelectedColor(int style, int selectedThemeColor, int selectedTextColor) public void setSchemeColor(int style, int schemeColor, int schemeTextColor) public void setWeeColor(int weekBackground, int weekTextColor) CalendarLayout api public void expand(); //展开 public void shrink(); //收缩 public boolean isExpand();//是否展开了 CalendarLayout attrs <!-- 日历显示模式 --> <attr name="calendar_show_mode"> <enum name="both_month_week_view" value="0" /><!-- 默认都有 --> <enum name="only_week_view" value="1" /><!-- 仅周视图 --> <enum name="only_month_view" value="2" /><!-- 仅月视图 --> </attr> <attr name="default_status"> <enum name="expand" value="0" /> <!--默认展开--> <enum name="shrink" value="1" /><!--默认搜索--> </attr> <attr name="calendar_content_view_id" format="integer" /> <项目地址:https://github.com/Visen123/CalendarView>

努力向前看,梦想离你很近


app:month_view="com.yanyiyun.calendarviewproject.simple.SimpleCalendarCardView"
app:week_view="com.yanyiyun.calendarviewproject.simple.SimpleWeekView"
app:week_bar_view="com.yanyiyun.calendarviewproject.EnglishWeekBar"
使用方法
 <com.yanyiyun.calendarview.CalendarLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:default_status="shrink"
        app:calendar_show_mode="only_week_view"
        app:calendar_content_view_id="@+id/recyclerView">
        <com.yanyiyun.calendarview.CalendarView
             android:id="@+id/calendarView"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:background="#fff"
             app:month_view="com.yanyiyun.calendarviewproject.simple.SimpleCalendarCardView"
             app:week_view="com.yanyiyun.calendarviewproject.simple.SimpleWeekView"
             app:week_bar_view="com.yanyiyun.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"
             app:scheme_text="假"
             app:scheme_text_color="#333"
             app:scheme_theme_color="#333"
             app:selected_text_color="#fff"
             app:selected_theme_color="#333"
             app:week_start_with="mon"
             app:week_background="#fff"
             app:month_view_show_mode="mode_only_current"
             app:week_text_color="#111" />
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#d4d4d4" />
    </com.yanyiyun.calendarview.CalendarLayout>
CalendarView attrs
<declare-styleable name="CalendarView">
        <attr name="calendar_padding" format="dimension" /><!--日历内部左右padding-->
        <attr name="month_view" format="color" /> <!--自定义类日历月视图路径-->
        <attr name="week_view" format="string" /> <!--自定义类周视图路径-->
        <attr name="week_bar_height" format="dimension" /> <!--星期栏的高度-->
        <attr name="week_bar_view" format="color" /> <!--自定义类周栏路径,通过自定义则 week_text_color week_background xml设置无效,当仍可java api设置-->
        <attr name="week_line_margin" format="dimension" /><!--线条margin-->
        <attr name="week_line_background" format="color" /><!--线条颜色-->
        <attr name="week_background" format="color" /> <!--星期栏的背景-->
        <attr name="week_text_color" format="color" /> <!--星期栏文本颜色-->
        <attr name="week_text_size" format="dimension" /><!--星期栏文本大小-->
        <attr name="current_day_text_color" format="color" /> <!--今天的文本颜色-->
        <attr name="current_day_lunar_text_color" format="color" /><!--今天的农历文本颜色-->
        <attr name="calendar_height" format="string" /> <!--日历每项的高度,56dp-->
        <attr name="day_text_size" format="string" /> <!--天数文本大小-->
        <attr name="lunar_text_size" format="string" /> <!--农历文本大小-->
        <attr name="scheme_text" format="string" /> <!--标记文本-->
        <attr name="scheme_text_color" format="color" /> <!--标记文本颜色-->
        <attr name="scheme_month_text_color" format="color" /> <!--标记天数文本颜色-->
        <attr name="scheme_lunar_text_color" format="color" /> <!--标记农历文本颜色-->
        <attr name="scheme_theme_color" format="color" /> <!--标记的颜色-->
        <attr name="selected_theme_color" format="color" /> <!--选中颜色-->
        <attr name="selected_text_color" format="color" /> <!--选中文本颜色-->
        <attr name="selected_lunar_text_color" format="color" /> <!--选中农历文本颜色-->
        <attr name="current_month_text_color" format="color" /> <!--当前月份的字体颜色-->
        <attr name="other_month_text_color" format="color" /> <!--其它月份的字体颜色-->
        <attr name="current_month_lunar_text_color" format="color" /> <!--当前月份农历节假日颜色-->
        <attr name="other_month_lunar_text_color" format="color" /> <!--其它月份农历节假日颜色-->
        <!-- 年视图相关 -->
        <attr name="year_view_month_text_size" format="dimension" /> <!-- 年视图月份字体大小 -->
        <attr name="year_view_day_text_size" format="dimension" /> <!-- 年视图月份日期字体大小 -->
        <attr name="year_view_month_text_color" format="color" /> <!-- 年视图月份字体颜色 -->
        <attr name="year_view_day_text_color" format="color" /> <!-- 年视图日期字体颜色 -->
        <attr name="year_view_scheme_color" format="color" /> <!-- 年视图标记颜色 -->
        <attr name="min_year" format="integer" />  <!--最小年份1900-->
        <attr name="max_year" format="integer" />  <!--最大年份2099-->
        <attr name="min_year_month" format="integer" /> <!--最小年份对应月份-->
        <attr name="max_year_month" format="integer" /> <!--最大年份对应月份-->
        <!--月视图是否可滚动-->
        <attr name="month_view_scrollable" format="boolean" />
        <!--周视图是否可滚动-->
        <attr name="week_view_scrollable" format="boolean" />
        <!--年视图是否可滚动-->
        <attr name="year_view_scrollable" format="boolean" />
        <!--配置你喜欢的月视图显示模式模式-->
        <attr name="month_view_show_mode">
             <enum name="mode_all" value="0" /> <!--全部显示-->
             <enum name="mode_only_current" value="1" /> <!--仅显示当前月份-->
             <enum name="mode_fix" value="2" /> <!--自适应显示,不会多出一行,但是会自动填充-->
        </attr>
        <!-- 自定义周起始 -->
        <attr name="week_start_with">
             <enum name="sun" value="1" />
             <enum name="mon" value="2" />
             <enum name="sat" value="7" />
        </attr>
        <!-- 自定义选择模式 -->
        <attr name="select_mode">
              <enum name="default_mode" value="0" />
              <enum name="single_mode" value="1" />
              <enum name="range_mode" value="2" />
        </attr>
        <!-- 当 select_mode=range_mode -->
        <attr name="min_select_range" format="integer" />
        <attr name="max_select_range" format="integer" />
</declare-styleable>
CalendarView api
public void setRange(int minYear, int minYearMonth, int minYearDay,
                     int maxYear, int maxYearMonth, int maxYearDay) ;//置日期范围
public int getCurDay(); //今天
public int getCurMonth(); //当前的月份
public int getCurYear(); //今年
public boolean isYearSelectLayoutVisible();//年月份选择视图是否打开
public void closeYearSelectLayout();//关闭年月视图选择布局
public void showYearSelectLayout(final int year); //快速弹出年份选择月份
public void setOnMonthChangeListener(OnMonthChangeListener listener);//月份改变事件
public void setOnYearChangeListener(OnYearChangeListener listener);//年份切换事件
public void setOnCalendarSelectListener(OnCalendarSelectListener listener)//日期选择事件
public void setOnCalendarLongClickListener(OnCalendarLongClickListener listener);//日期长按事件
public void setOnCalendarLongClickListener(OnCalendarLongClickListener listener, boolean preventLongPressedSelect);//日期长按事件
public void setOnCalendarInterceptListener(OnCalendarInterceptListener listener);//日期拦截和日期有效性绘制
public void setSchemeDate(Map<String, Calendar> mSchemeDates);//标记日期
public void update();//动态更新
public Calendar getSelectedCalendar(); //获取选择的日期
public void scrollToCurrent();//滚动到当前日期
public void scrollToCurrent(boolean smoothScroll);//滚动到当前日期
public void scrollToYear(int year);//滚动到某一年
public void scrollToPre();//滚动到上一个月
public void scrollToNext();//滚动到下一个月
public void scrollToCalendar(int year, int month, int day);//滚动到指定日期
public Calendar getMinRangeCalendar();//获得最小范围日期
public Calendar getMaxRangeCalendar();//获得最大范围日期
public void setBackground(int monthLayoutBackground, int weekBackground, int lineBg)
public void setTextColor(int curMonthTextColor,int otherMonthColor,int lunarTextColor)
public void setSelectedColor(int style, int selectedThemeColor, int selectedTextColor)
public void setSchemeColor(int style, int schemeColor, int schemeTextColor)
public void setWeeColor(int weekBackground, int weekTextColor)
CalendarLayout api
public void expand(); //展开
public void shrink(); //收缩
public boolean isExpand();//是否展开了
CalendarLayout attrs
<!-- 日历显示模式 -->
<attr name="calendar_show_mode">
      <enum name="both_month_week_view" value="0" /><!-- 默认都有 -->
      <enum name="only_week_view" value="1" /><!-- 仅周视图 -->
      <enum name="only_month_view" value="2" /><!-- 仅月视图 -->
</attr>
<attr name="default_status">
      <enum name="expand" value="0" /> <!--默认展开-->
      <enum name="shrink" value="1" /><!--默认搜索-->
</attr>
<attr name="calendar_content_view_id" format="integer" />
<项目地址:https://github.com/Visen123/Calenda

评论区

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部