본문 바로가기
안드로이드

안드로이드 커스텀 캘린더 사용하기 ( 1 - 주말에 색상 적용하기 )

by 아스키의 공부방 2020. 5. 15.
728x90
반응형

 

https://gameprograming.tistory.com/122

 

안드로이드 스튜디오 커스텀 캘린더뷰 적용하기

안드로이드에서 기본적으로 제공되는 캘린더뷰로는 원하는 방식을 구현하기에 제한이 많았습니다. https://github.com/prolificinteractive/material-calendarview prolificinteractive/material-calendarview A M..

gameprograming.tistory.com

 

커스텀 캘린더뷰를 적용하고 사용해보겠습니다.

 

자바 파일을 생성합니다.

( SaturdayDecorator )

 

class SaturdayDecorator implements DayViewDecorator {

    private final Calendar calendar = Calendar.getInstance();

    public SaturdayDecorator() {
    }

    @Override
    public boolean shouldDecorate(CalendarDay day) {
        day.copyTo(calendar);
        int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
        return weekDay == Calendar.SATURDAY;
    }

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

 

( SundayDecorator )

 

class SundayDecorator implements DayViewDecorator {

    private final Calendar calendar = Calendar.getInstance();

    public SundayDecorator() {
    }

    @Override
    public boolean shouldDecorate(CalendarDay day) {
        day.copyTo(calendar);
        int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
        return weekDay == Calendar.SUNDAY;
    }

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

 

 

 

 

이제 메인 액티비티에 적용해보겠습니다.

 

MaterialCalendarView materialCalendarView;

materialCalendarView = findViewById(R.id.calendarView);

materialCalendarView.addDecorators(
                new SundayDecorator(),
                new SaturdayDecorator()
        );

 

 

 

적용이 끝났습니다.

728x90
반응형