12

我在 Eclipse 中有日历视图,现在我正在尝试更改一天的外观以突出显示日期。我在这里没有找到任何有用的方法,只有整个工作日或月份的外观变化。那么是否有可能突出显示某一天?

我也知道有 3 个帖子有同样的问题,但没有一个得到回答。

4

2 回答 2

9

您可以扩展本机 CalenderView 以创建自己的 CustomCalendarView 并对外观进行任何所需的更改。

您可以在此处找到本机 CalendarView 的代码。

于 2013-04-08T08:38:48.600 回答
4

您可以通过获取的子视图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

于 2015-02-04T14:16:38.257 回答