안드로이드 자바
[Java][Android] Material CalendarView 사용하여 달력 표시하기
teamnova
2025. 6. 10. 16:43
728x90
안녕하세요
이번에는 Material CalendarView 사용해서 달력 표시하는 방법에 대해 알아보도록 하겠습니다.
안드로이드스튜디오 내부에는 기본적으로 사용 가능한 CalendarView 를 제공합니다.
하지만 커스텀하기에 매우 제한적이기 때문에, 라이브러리를 많이들 사용합니다.
그중에서, 가장 대표적으로 사용되는 Material CalendarView를 사용해 특정 날짜를 강조표시하는것을 해보겠습니다.
우선 라이브러리 사용을 위해 build.gradle.kts (Module :app) 수준에 의존성을 추가해줍니다.
dependencies {
implementation ("com.prolificinteractive:material-calendarview:1.4.3")
}
전체 코드입니다.
MainActivity.java
public class MainActivity extends AppCompatActivity {
private MaterialCalendarView calendarView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
calendarView = findViewById(R.id.calendarView);
// 특정 날짜 예: 2025년 6월 15일
Calendar target = Calendar.getInstance();
target.set(2025, Calendar.JUNE, 15); // 6월은 Calendar.JUNE
calendarView.addDecorator(new DayViewDecorator() {
@Override
public boolean shouldDecorate(CalendarDay day) {
return day.equals(CalendarDay.from(target));
}
@Override
public void decorate(DayViewFacade view) {
view.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FFA726"))); // 주황 배경
}
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp">
<com.prolificinteractive.materialcalendarview.MaterialCalendarView
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:mcv_showOtherDates="all"
app:mcv_firstDayOfWeek="monday"
app:mcv_selectionColor="#FF4081"
/>
</LinearLayout>
현재 2025년 6월 15일에 강조표시를 하도록 설정해놓았습니다.
이를 활용해서 다양하게 적용해보시기 바랍니다.
시연영상입니다.