Изменение цвета одного дня в календаре, андроида

У меня есть календарь в eclipse, и теперь я пытаюсь изменить внешний вид одного дня, чтобы выделить даты. Я не нашел полезного метода здесь, только изменения видимости целых дат или месяцев. Итак, есть ли возможность выделить один день?

Также я знаю, что есть 3 сообщения с той же проблемой, но никто из них не получил ответа.

Ответ 1

Вы можете расширить собственный CalenderView, чтобы создать свой собственный CustomCalendarView и внести любые изменения в внешний вид.

Здесь вы можете найти код для собственного CalendarView .

Ответ 2

Вы можете сделать это, получив дочерние представления CalendarView и изменив там конфигурации:

    final CalendarView calendar = new CalendarView(this);       
    java.lang.reflect.Field field = null;

    Class<?> cvClass = calendar.getClass();
    try {
        field = cvClass.getDeclaredField("mDayNamesHeader");    
        field.setAccessible(true);
    } catch (NoSuchFieldException e) {
    }

    ViewGroup tv = null;
    try {
        tv = (ViewGroup) field.get(calendar);
    } catch (IllegalAccessException e) {} 
      catch (IllegalArgumentException ){}

    TextView k =  (TextView) tv.getChildAt(1);
    k.setTextColor(Color.RED);

Здесь вы можете найти все объявления:

https://android.googlesource.com/platform/frameworks/base/+/2888524e03896831f487e5dee63f18f1c33c0115/core/java/android/widget/CalendarView.java