다음과 같이 토요일과 일요일의 날짜 색깔을 바꾸려면 DayViewDecorator를 implements한 클래스가 필요하다.
다음과 같이 클래스 명명 해준뒤
DayViewDecorator 오버라이드 메소드를 적어준다.
***
그 다음으로 생성자 지정을 해줄텐데,
1) 토요일, 파란색
2) 일요일, 빨간색
이렇게 두가지 속성(무슨요일, 무슨색)이 있어야 구현될 것이기 때문에 이 속성을 받게될 생성자를 만든다.
그 다음 아까전에 적어준 오버라이드 메소드 중, shouldDecorate 메소드를 구현한다.
여기선 조건에 관한 구현을 해줄 것이다.
여기서 관건은 Calendar.DAY_OF_WEEK 값을 구하기 위해 CalendarDay형식을 Calendar형식으로 변환시켜주는 것이다. tmp_cal을 Calendar형식에 맞게 초기화 시킨 후 이를 set메소드를 통해 변환시켜준다.
CalendarDay, Calendar, Date형식간 변환을 자유자재로 할 수 있게 참고해둔다.
그 다음 위 조건이 true일 경우 어떻게 장식해줄지 decorate메소드 통해 구현한다.
addSpan과 ForegroundColorSpan을 통해 글자 색깔을 바꿔주게끔 구현한다.
***
그 다음엔 colors.xml에 설정한 색상을 불러온 뒤, 각 요일과 색상 속성을 HighlightDayClass생성자를 통해 만든다.
그리고 이렇게 만든 DayViewDecorator를 통해 만들어진 여러 객체들을 addDecorator에 집어넣어 만든다.
'PHP' 카테고리의 다른 글
activity를 1번만 notify 시키게 하기 (3) | 2024.10.30 |
---|---|
remove actionBar, navigationBar programmatically (0) | 2024.10.30 |
[Material-calendar] 날짜(각 칸, 항목) 스타일을 한 번에 잡아주는 selector xml (1) | 2024.10.21 |
[Android Studio] material-calendar의 지정된 날짜에 decorate해주기 (1) | 2024.10.17 |
안드로이드 스튜디오 dependency 문제해결 (0) | 2024.10.15 |