Изменить цвет текущей даты в MaterialCalandarView
Я использую MaterialCalendarView
, Вот код:
<com.prolificinteractive.materialcalendarview.MaterialCalendarView
android:id="@+id/calendar_view"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_margin="@dimen/standard_space"
android:layout_weight="1"
app:mcv_dateTextAppearance="@dimen/very_small_text_size"
app:mcv_showOtherDates="all"/>
Я хочу дать черную границу текущей дате, как я могу дать это?
Заранее спасибо.
1 ответ
Если вы хотите установить цвет всех выбранных дат, вы должны добавить эту строку в ваш XML:
app:mcv_selectionColor="@color/yourColor"
и выбрать текущую дату:
calendarView.setDateSelected(Calendar.getInstance(),true);
Если вы хотите установить другой цвет только для текущей даты, вам нужно добавить Decorator в ваш MaterialCalendarView:
calendarView.addDecorator(new DayViewDecorator() {
@Override
public boolean shouldDecorate(CalendarDay day) {
Calendar cal1 = day.getCalendar();
Calendar cal2 = Calendar.getInstance();
return (cal1.get(Calendar.ERA) == cal2.get(Calendar.ERA)
&& cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR)
&& cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR));
}
@Override
public void decorate(DayViewFacade view) {
view.setBackgroundDrawable(ContextCompat.getDrawable(MainActivity.this,R.drawable.selector));
}
});
Где selector - ваш пользовательский файл selector.xml, например:
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_shortAnimTime">
<item
android:state_checked="true"
android:drawable="@color/yourColor"
/>
<item
android:state_pressed="true"
android:drawable="@color/yourColor"
/>
<item android:drawable="@android:color/transparent" />
Ссылка на ссылку селектора: https://github.com/prolificinteractive/material-calendarview/blob/master/docs/CUSTOM_SELECTORS.md
Ссылка на ссылку для декораторов: https://github.com/prolificinteractive/material-calendarview/blob/master/docs/DECORATORS.md