当前位置:   article > 正文

android日历左右滑动,GitHub - lyldding/CalendarView: 自定义Android日历,只有一个CalendarView,非常小巧。支持左右滑动切换月份,上下滑动切换年份...

android calendarview 上下滑动

CalendarView

自定义Android日历,只有一个CalendarView,非常小巧。核心代码400行左右,主要就是画。

功能:支持左右滑动切换月份,上下滑动切换年份,设置背景,边框,周末或周一为第一天,显示其他月份日期等功能。 具体参考CalendarConfig或者自定义。

dependencies {

implementation 'com.github.lyldding:CalendarView:TAG'

}

e7b16168c27d6d7fe3915aca38788428.gif

大致思路:(主要分为5个区域)

1,初始化时计算每个区域每个Item的具体位置,并缓存。

2,红色年月为显示区域,在更新时同步更新其他四个区域的日期,并缓存。

3,处理移动和绘制。

e3a06db36772d6b21cf4f9637a8e408a.png

代码简述:(具体看源码吧,核心代码400行左右)

1,计算各个Item的具体位置,并更新月份信息

private void computeData() {

mViewRectF.set(0 + mStrokeWidth / 2f, 0 + mStrokeWidth / 2f, mViewWidth - mStrokeWidth / 2f, mViewHeight - mStrokeWidth / 2f);

mViewWidth = (int) mViewRectF.width();

mItemWidth = mViewWidth / CalendarUtils.WEEK_COLUMN;

computeTitleData();

computeWeekData();

computeDayData();

updateMonthData(mCurrentYear, mCurrentMonth, Type.NONE);

}

2,绘制各个部分:背景,年月和切换按钮,星期,日期。

protected void onDraw(Canvas canvas) {

mIsDrawing = true;

drawBackground(canvas);

drawDataStr(canvas);

drawSwitchButton(canvas);

drawWeek(canvas);

drawAllDay(canvas);

drawOuterLine(canvas);

mIsDrawing = false;

}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/534764
推荐阅读
相关标签
  

闽ICP备14008679号