当前位置: 首页 > 工具软件 > CalendarView > 使用案例 >

日历控件CalendarView的使用

汪迪
2023-12-01

项目需要用到CalendarView故而整理CanlendarView的相关API

Gradle

implementation 'com.haibin:calendarview:3.5.5'

CalendarLayout

这是辅助类,当需要日历折叠功能的时候,用它包裹住CalendarView

//CalendarLayout api
public void expand(); //展开
public void shrink(); //收缩
public boolean isExpand();//是否已经展开

日历显示模式

<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" /><!--内容布局id-->

CalendarView

可通过attr配置

<declare-styleable name="CalendarView">

        <attr name="week_background" format="color" /><!--星期栏背景色-->
        <attr name="week_line_background" format="color" /><!--星期栏线的颜色-->
        <attr name="week_text_color" format="color" /><!--星期栏文本颜色-->
        <attr name="week_bar_view" format="string" /><!--如果需要的话使用自定义星期栏-->

        <attr name="month_view" format="string" /><!--完全自定义月视图路径-->
        <attr name="week_view" format="string" /><!--完全自定义周视图路径-->

        <attr name="scheme_text" format="string" /><!--标记的文本,一般可忽略-->
        <attr name="day_text_size" format="dimension" /><!--日期字体大小-->
        <attr name="lunar_text_size" format="dimension" /><!--农历字体大小-->
        <attr name="calendar_height" format="dimension" /><!--日历卡的高度,每一项,不是整体-->
        <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_day_text_color" format="color" /><!--今天的日子字体颜色-->
        <attr name="current_day_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="year_view_background" format="color" /><!--年视图背景-->
        <!---->

        <attr name="min_year" format="integer" /><!--最小年份-->
        <attr name="max_year" format="integer" /><!--最大年份-->
        <attr name="min_year_month" format="integer" /><!--最小年份对应最小月份-->
        <attr name="max_year_month" format="integer" /><!--最大年份对应月份-->

       <!--配置你喜欢的月视图显示模式模式-->
        <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>
    </declare-styleable>
//CalendarView api
public int getCurDay(); //今天
public int getCurMonth(); //当前的月份
public int getCurYear(); //今年
public void showSelectLayout(final int year); //快速弹出年份选择月份
public void closeSelectLayout(final int position); //关闭选择年份并跳转日期
public void setRange(int minYear, int minYearMonth, int maxYear, int maxYearMonth) //设置日期范围
public void setOnYearChangeListener(OnYearChangeListener listener);//年份切换事件
public void setOnDateSelectedListener(OnDateSelectedListener listener);//日期选择事件
public void setSchemeDate(List<Calendar> mSchemeDate);//标记日期
public void update();//动态更新
public Calendar getSelectedCalendar(); //获取选择的日期
public void scrollToPre();//滚动到上一个月
public void scrollToNext();//滚动到下一个月
public void scrollToCalendar(int year, int month, int day);//滚动到指定日期
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 setBackground(int yearViewBackground, int weekBackground, int lineBg)//设置背景色
 类似资料: