package com.fuban.user.views.calendar; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import com.haibin.calendarview.Calendar; import com.haibin.calendarview.MonthView; /** * 高仿魅族日历布局 * Created by huanghaibin on 2017/11/15. */ public class SimpleMonthView extends MonthView { private int mRadius; public SimpleMonthView(Context context) { super(context); } @Override protected void onPreviewHook() { mRadius = Math.min(mItemWidth, mItemHeight) / 5 * 2; mSchemePaint.setStyle(Paint.Style.STROKE); } @Override protected void onLoopStart(int x, int y) { } @Override protected boolean onDrawSelected(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme) { int cx = x + mItemWidth / 2; int cy = y + mItemHeight / 2; canvas.drawCircle(cx, cy, mRadius, mSelectedPaint); return false; } @Override protected void onDrawScheme(Canvas canvas, Calendar calendar, int x, int y) { int cx = x + mItemWidth / 2; int cy = y + mItemHeight / 2; canvas.drawCircle(cx, cy, mRadius, mSchemePaint); } @Override protected void onDrawText(Canvas canvas, Calendar calendar, int x, int y, boolean hasScheme, boolean isSelected) { float baselineY = mTextBaseLine + y; int cx = x + mItemWidth / 2; if (isSelected) { canvas.drawText(String.valueOf(calendar.getDay()), cx, baselineY, mSelectTextPaint); } else if (hasScheme) { canvas.drawText(String.valueOf(calendar.getDay()), cx, baselineY, calendar.isCurrentDay() ? mCurDayTextPaint : calendar.isCurrentMonth() ? mSchemeTextPaint : mOtherMonthTextPaint); } else if (onCalendarIntercept(calendar)){ canvas.drawText(String.valueOf(calendar.getDay()), cx, baselineY, mOtherMonthTextPaint); }else { canvas.drawText(String.valueOf(calendar.getDay()), cx, baselineY, calendar.isCurrentDay() ? mCurDayTextPaint : calendar.isCurrentMonth() ? mCurMonthTextPaint : mOtherMonthTextPaint); } } }