如何为多选日期设置不同的颜色?

How to set different colors for multiply selected dates?

我在我的应用程序中使用 com.prolificinteractive.materialcalendarview.MaterialCalendarView。 是否可以为多个选定的日期设置不同的颜色?或者我需要使用自定义 calendarView?谢谢。

您应该能够为一周中的每一天设置不同的装饰器。每个装饰器都有一个与之关联的不同选择器。

例如:

mcv.addDecorators(
            new MondayDecorator(this),
            new TuesdayDecorator(),
            ...
    );
public class MondayDecorator implements DayViewDecorator {

    private final Calendar calendar = Calendar.getInstance();
    private final Drawable drawable;

    public MySelectorDecorator(Activity context) {
        drawable = context.getResources().getDrawable(R.drawable.monday_selector);
    }

    @Override
    public boolean shouldDecorate(CalendarDay day) {
        day.copyTo(calendar);
        int weekDay = calendar.get(Calendar.DAY_OF_WEEK);
        return weekDay == Calendar.MONDAY;
    }

    @Override
    public void decorate(DayViewFacade view) {
        view.setSelectionDrawable(drawable);
    }
}

最后是你的 monday_selector:

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:exitFadeDuration="@android:integer/config_shortAnimTime">

    <item android:state_checked="true"
        android:drawable="@drawable/ic_monday_selector" />

    <item android:state_pressed="true"
        android:drawable="@drawable/ic_monday_selector" />

    <item android:drawable="@android:color/transparent" />

</selector>

我没试过,但应该可以。