-
[Android/Kotlin] MaterialCalendarView 커스텀Android/Kotlin 2022. 9. 8. 22:14반응형
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다]
*생각나는 대로 계속 추가 할 예정입니다*
calendarView!!.addDecorator(데코레이터 클래스명(날짜 리스트명))
- 날짜 리스트명은 CalendarDay 리스트 형식이어야 함
private class Holiday_Decorator(val calendarDay_holiday_list: List<CalendarDay>): DayViewDecorator{ override fun shouldDecorate(day: CalendarDay?): Boolean { return 날짜 리스트명.contains(day) } override fun decorate(view: DayViewFacade?) { } }//Holiday_Decorator
<1. 날짜 밑에 점 표시>
override fun decorate(view: DayViewFacade?) { view!!.addSpan(DotSpan(5F, Color.GRAY)) }
<2. 날짜 색상 변경>
override fun decorate(view: DayViewFacade?) { view!!.addSpan(ForegroundColorSpan(Color.RED)) ) }
<3. 토요일에 파란색 색상 적용>
private val calendar = Calendar.getInstance() override fun shouldDecorate(day: CalendarDay?): Boolean { calendar.set(Calendar.YEAR, day!!.year) calendar.set(Calendar.MONDAY, day!!.month-1)//Calendar의 월은 0~11월 calendar.set(Calendar.DAY_OF_MONTH, day!!.day) val dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) if(dayOfWeek == Calendar.SATURDAY){ return true } else{ return false } }
- Calendar.getInstance()로 캘린더 객체 얻은 후 calendar에 day 값을 set 해줌(Calendar 클래스는 CalendarDay가 1~12월 사용하는 것과 달리 0~11월 사용하므로 꼭 day의 month에 -1을 해줘야 함)
- Calendar.DAY_OF_WEEK : 요일 추출(일요일 == 1, 토요일 == 7)
- Calendar.SATURDAY 값 : 7
- 필자는 공공데이터 포털로부터 공휴일 값 읽어 와 공휴일을 빨간색으로 표시하는 데코레이터 적용해 줌
<4. 텍스트 크기 변경>
override fun decorate(view: DayViewFacade?) { view!!.addSpan(AbsoluteSizeSpan(50)) }
<5. 텍스트 굵게>
override fun decorate(view: DayViewFacade?) { view!!.addSpan(StyleSpan(Typeface.BOLD)) }
반응형'Android > Kotlin' 카테고리의 다른 글
[Android/Kotlin] 커스텀 뷰(Custom View) (0) 2022.10.18 [Android/Kotlin] Glide 라이브러리 사용 방법 (0) 2022.09.12 [Andoird/Kotlin] Koin 사용법 (0) 2022.09.06 [Android/Kotlin] Retrofit과 OKHttp를 사용하여 공공데이터포털 json 파싱하기, MaterialCalendar 공휴일/휴일 빨간색 데코레이터 추가 (0) 2022.09.05 [Android/Kotlin] DatePicker 초기화 (0) 2022.08.31