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일에 강조표시를 하도록 설정해놓았습니다.
이를 활용해서 다양하게 적용해보시기 바랍니다.
시연영상입니다.
'안드로이드 자바' 카테고리의 다른 글
[Java][Android] ViewFlipper 사용해서 뷰 전환 애니메이션 구현하기 (1) | 2025.06.17 |
---|---|
[Java][Android] Timber 활용 예시 만들기 (1) | 2025.06.06 |
[Java][Android] Sharesheet 방식으로 데이터 공유하기 (0) | 2025.06.03 |
[Java][Android] 버튼 연속 클릭 방지하기 (2) | 2025.06.02 |
[Java][Android] commons-io 활용 예시 만들기 (0) | 2025.05.30 |