Giter VIP home page Giter VIP logo

signdemo's Introduction

#签到Demo

compile 'com.prolificinteractive:material-calendarview:1.4.3'

支持自定义日期的各个背景 demoImg

//设置第一天是周日 最小日期 2017年1月1日, 形式 月 可切换成周

          mcv.state().edit()
            .setFirstDayOfWeek(Calendar.SUNDAY)
            .setMinimumDate(CalendarDay.from(2017, 1, 1))
            .setMaximumDate(new CalendarDay())
            .setCalendarDisplayMode(CalendarMode.MONTHS)
            .commit();

//设置年月的title

    mcv.setTitleFormatter(new TitleFormatter() {
        @Override
        public CharSequence format(CalendarDay day) {
            StringBuffer buffer = new StringBuffer();
            int yearOne = day.getYear();
            int monthOne = day.getMonth() + 1;
            buffer.append(yearOne).append("年").append(monthOne).append("月");
            return buffer;
        }
    });

//设置星期 默认 星期一 星期二.......

    mcv.setWeekDayLabels(new String[]{"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"});

//日期点击监听

   mcv.setOnDateChangedListener(this); 

 
//月份切换监听,在方法里请求接口 目前demo中用的随机数模拟数据

     mcv.setOnMonthChangedListener(this);

//当前时间的Decorator,通过不同的span来修改其背景。具体步骤如下

  public class SameDayDecorator implements DayViewDecorator {
    @Override
    public boolean shouldDecorate(CalendarDay day) {
        if (day.getDate().equals(parse)) {
            return true;
        }
        return false;
    }

  @Override
    public void decorate(DayViewFacade view) {
        view.addSpan(new TodayBGSpan());
        view.addSpan(new TodaySpan());
        view.addSpan(new ForegroundColorSpan(Color.TRANSPARENT));
    }
}

//字体span

     public class TodaySpan implements LineBackgroundSpan {

@Override
public void drawBackground(Canvas c, Paint p, int left, int right, int top, int baseline, int bottom, CharSequence text, int start, int end, int lnum) {
        Paint paint = new Paint();
        paint.setTextSize(dip2px(14));
        paint.setColor(Color.parseColor("#ff4141"));
        c.drawText("今", (right - left) / 2 - dip2px(7), (bottom - top) / 2 + dip2px(7), paint);
    }

   }

    //背景Span

  public class TodayBGSpan implements LineBackgroundSpan {

@Override
public void drawBackground(Canvas c, Paint p, int left, int right, int top, int baseline, int bottom, CharSequence text, int start, int end, int lnum) {
        Paint paint = new Paint();
        paint.setAntiAlias(true); //消除锯齿
        paint.setStyle(Paint.Style.STROKE);//绘制空心圆或 空心矩形
        int ringWidth = dip2px(1);//圆环宽度
        //绘制圆环
        paint.setColor(Color.parseColor("#ff4141"));
        paint.setStrokeWidth(ringWidth);
        c.drawCircle((right - left) / 2, (bottom - top) / 2, dip2px(18), paint);
    }

}

//最后将所有的Decorator放进去。

 mcv.addDecorators(sameDayDecorator.....);

详细内容请看demo

signdemo's People

Contributors

hjja1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.