我有一个日历列表,我希望在calendarview上以红色显示。 我怎么办?
我的活动..
public class Calendario extends Activity {
RelativeLayout rl;
final Calendar calendar = Calendar.getInstance();
CalendarView cal;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendar);
rl = (RelativeLayout) findViewById(R.id.rl);
cal = new CalendarView(Calendario.this);
rl.addView(cal);
cal.setOnDateChangeListener(new OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month,
int dayOfMonth) {
// TODO Auto-generated method stub
}
});
}
}
我要添加什么代码才能为日期着色?
答案 0 :(得分:1)
您最好的选择可能是根据找到的源代码here创建自己的CalendarView类,即CalendarViewCustom。
然后,您可以向LegacyCalendarViewDelegate类添加一个额外的方法,类似于setFocusedMonthDateColor()方法,以迭代几周并在WeekView类中设置日期和颜色(可能值得将这些键/值日期/颜色存储为在WeekView类中映射集合实例变量)。 e.g。
public void setMonthDateColor(Date date, int color) {
final int childCount = mListView.getChildCount();
for (int i = 0; i < childCount; i++) {
WeekView weekView = (WeekView) mListView.getChildAt(i);
if (weekView.isDateInWeek(date)) {
//this method adds the date and colour to a
//Map collection in weekView Object
weekView.setDateColour(date, color);
}
}
}
然后需要通过向父类CalendarViewCustom(类似于其现有方法)添加另一个方法来暴露上述方法,然后可以在类的实例上调用该方法,即
。public int setMonthDateColor(Date date, int color) {
return mDelegate.getMonthDateColor(date, color);
}
然后,您需要做的就是使用现有for循环(for(; i&lt; nDays; i ++))在指定日期的WeekView类方法中绘制画布上列出的颜色,并迭代Map并更改日期文本的paint颜色,即mMonthNumDrawPaint.setColor()。
希望这能指出你正确的方向。
答案 1 :(得分:1)
试试这个。希望这有帮助
android:weekDayTextAppearance="@style/CalendarWeekDateText"
<style name="CalendarWeekDatText" parent="TextAppearance.AppCompat.Button">
<item name="android:textColor">#000000</item>
</style>
答案 2 :(得分:0)
android:theme="@style/testTheme"
使用此主题或以父作为此主题的自定义主题。
使其成为白色
要选择除白色以外的其他颜色,请使用以下颜色
android:textColorPrimary="@color/yourColor"
对于其他文字颜色,请使用以下
android:weekDayTextAppearance="@style/weekDayTextAppearance"
android:dateTextAppearance="@style/appTextAppearance"
android:unfocusedMonthDateColor="@color/colorLoginBtn"
android:selectedWeekBackgroundColor="@color/colorLoginBtn"
android:weekSeparatorLineColor="@color/colorLoginBtn"
android:focusedMonthDateColor="@color/colorLoginBtn"
android:weekNumberColor="@color/colorLoginBtn"