当前位置:   article > 正文

关于Android日历视图控件CalendarView

calendarview

简要介绍

CalendarView是Android上一个优雅、高度自定义、性能高效的日历控件,完美支持周视图,支持标记、自定义颜色、农历等,任意控制月视图显示、任意日期拦截条件、自定义周起始等。


CalendarView 的特性

  • 基于Canvas绘制,极速性能
  • 热插拔思想,任意定制周视图、月视图,即插即用
  • 支持单选、多选、范围选择、国内手机日历默认自动选择等选择模式
  • 支持静态、动态设置周起始,一行代码搞定
  • 支持静态、动态设置日历项高度、日历填充模式
  • 支持设置任意日期范围、任意拦截日期
  • 支持多点触控、手指平滑切换过渡,拒绝界面抖动
  • 类NestedScrolling特性,嵌套滚动
  • 既然这么多支持,那一定支持英语、繁体、简体,任意定制实现




简要实现代码与效果演示

下面展示CalendarView最简单的使用方法

<CalendarView
        android:id="@+id/calendarView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    />
  • 1
  • 2
  • 3
  • 4
  • 5

实现效果:
在这里插入图片描述




ClendarView常见属性及方法



属性 说明
android:dateTextAppearance="" 设置该日历视图的日期文字的样式
android:firstDayOfWeek="" 设置每周第一天,允许设置周一到周日任意一天作为每周的第一天
android:maxDate="" 设置该日历组件支持的最大日期,以mm/dd/yyyy格式设置指定最大日期
android:minDate="" 设置该日历组件支持的最小日期,以mm/dd/yyyy格式设置指定最小日期
android:background="" 设置整体背景颜色/图片
android:weekDayTextAppearance 工作日的文本出现在日历标题缩写



方法 说明
boolean isWeekend() 判断是不是周末,可以用不同的画笔绘制周末的样式
int getWeek() 获取星期
String getSolarTerm() 获取24节气,可以用不同颜色标记不同节日
String getGregorianFestival() 获取公历节日,自由判断,把节日换上喜欢的颜色
String getTraditionFestival() 获取传统节日
boolean isLeapYear() 是否是闰年
int getLeapMonth() 获取闰月
boolean isSameMonth(Calendar calendar) 是否相同月
int compareTo(Calendar calendar) 比较日期大小
long getTimeInMillis() 获取时间戳
int differ(Calendar calendar) 日期运算,相差多少天




简单实现日期选择

添加监听事件

在主活动中添加监听事件CalendarView.OnDateChangeListener ,在用户选择日期时触发相关效果(例:选择日期背景颜色改变)

获得具体日期

在主活动中,为其添加监听事件后

可以通过 daymonthdayOfMonth 来获得用户选择的日期的具体信息:

具体实现代码

public class MainActivity extends AppCompatActivity{
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        CalendarView calendarview = (CalendarView) findViewById(R.id.calendarview);

        calendarview.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
   
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
   
                Toast.makeText(MainActivity.this,"您选择的时间是:"+ year + "年" + month + "月" + dayOfMonth 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/534791
推荐阅读
相关标签
  

闽ICP备14008679号