android Material Calendar View的日期颜色修改~
2017-10-30 10:20
218 查看
https://github.com/prolificinteractive/material-calendarview
最近在实现一个日期功能,接触到了这个优秀的android端的三方控件。关于这个控件的一些其他自定义需求(给特定日期下面加点、修改title等),有很多相关的blog,我就不在这里写了。这一篇主要是写一下怎么修改日期的颜色。(好像没找到相关的文章
其实这个控件的具体实现是使用viewpager等实现的,每一个日期都是一个格子(DayView)。我这里需要实现的需求是,将周六日的日期变成灰色。
1、将星期栏的周六日变成灰色。在weekdayview这个类中修改如下代码:public void setDayOfWeek(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
if(dayOfWeek == 1 || dayOfWeek == 7){
setText(Html.fromHtml("<font color=\"#999090\">"+formatter.format(dayOfWeek)+"</font>"));
}else {
setText(formatter.format(dayOfWeek));
}
} 2、将日期栏中的所有周六日日期变成灰色。在DayView类中作如下修改:找到所有使用到setText()方法的地方,包括setDay(), setDayFormatter()和applyFacade().在setText下面添加如下代码
if (dd == 1 || dd == 7) {
setTextAppearance(R.style.CustomTextApp2);
}
这里的dd变量为我新加的标识星期的变量,需要在DayView中增加一个本地int变量,同时在构造函数里添加。
public DayView(Context context, CalendarDay day , int i) {
super(context);
fadeTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
setSelectionColor(this.selectionColor);
this.dd = i;//传入星期
setGravity(Gravity.CENTER);
setTextSize(30);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_
4000
MR1) {
setTextAlignment(TEXT_ALIGNMENT_CENTER);
}
setDay(day);
}
然后在CalendarPageView类中使用到DayView方法的地方传入这个星期变量:
protected void addDayView(Collection<DayView> dayViews, Calendar calendar) {
CalendarDay day = CalendarDay.from(calendar);
int i = calendar.get(Calendar.DAY_OF_WEEK);
DayView dayView = new DayView(getContext(), day ,i);
dayView.setOnClickListener(this);
dayViews.add(dayView);
addView(dayView, new LayoutParams());
calendar.add(DATE, 1);
}
最近在实现一个日期功能,接触到了这个优秀的android端的三方控件。关于这个控件的一些其他自定义需求(给特定日期下面加点、修改title等),有很多相关的blog,我就不在这里写了。这一篇主要是写一下怎么修改日期的颜色。(好像没找到相关的文章
其实这个控件的具体实现是使用viewpager等实现的,每一个日期都是一个格子(DayView)。我这里需要实现的需求是,将周六日的日期变成灰色。
1、将星期栏的周六日变成灰色。在weekdayview这个类中修改如下代码:public void setDayOfWeek(int dayOfWeek) {
this.dayOfWeek = dayOfWeek;
if(dayOfWeek == 1 || dayOfWeek == 7){
setText(Html.fromHtml("<font color=\"#999090\">"+formatter.format(dayOfWeek)+"</font>"));
}else {
setText(formatter.format(dayOfWeek));
}
} 2、将日期栏中的所有周六日日期变成灰色。在DayView类中作如下修改:找到所有使用到setText()方法的地方,包括setDay(), setDayFormatter()和applyFacade().在setText下面添加如下代码
if (dd == 1 || dd == 7) {
setTextAppearance(R.style.CustomTextApp2);
}
这里的dd变量为我新加的标识星期的变量,需要在DayView中增加一个本地int变量,同时在构造函数里添加。
public DayView(Context context, CalendarDay day , int i) {
super(context);
fadeTime = getResources().getInteger(android.R.integer.config_shortAnimTime);
setSelectionColor(this.selectionColor);
this.dd = i;//传入星期
setGravity(Gravity.CENTER);
setTextSize(30);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_
4000
MR1) {
setTextAlignment(TEXT_ALIGNMENT_CENTER);
}
setDay(day);
}
然后在CalendarPageView类中使用到DayView方法的地方传入这个星期变量:
protected void addDayView(Collection<DayView> dayViews, Calendar calendar) {
CalendarDay day = CalendarDay.from(calendar);
int i = calendar.get(Calendar.DAY_OF_WEEK);
DayView dayView = new DayView(getContext(), day ,i);
dayView.setOnClickListener(this);
dayViews.add(dayView);
addView(dayView, new LayoutParams());
calendar.add(DATE, 1);
}
相关文章推荐
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- android 修改TextView中部分文字的颜色
- android selector修改TextView字体颜色
- android_5 修改一个textview中的字符串的颜色
- Android中SearchView修改字体颜色
- Android 修改 TextView 的全局默认颜色。
- Android SearchView 修改hint颜色和搜索字的颜色
- Android使用selector修改TextView中字体颜色和背景色的方法
- Android 修改App中默认TextView的字体和颜色
- android-修改TextView中部分文字的颜色
- android学习之-TextView内容及颜色的修改方法
- android-修改TextView中部分文字的颜色
- android基础学习(2)-------修改TextView字体颜色和背景颜色
- Android Tablayout + viewpager 切换时修改tablayout title(标题)的字体颜色和字体大小
- 『ANDROID』android-修改TextView中部分文字的颜色
- android 动态修改textView颜色大小的两种方式
- android-修改TextView中部分文字的颜色
- android-修改TextView中部分文字的颜色
- 【转】android-修改TextView中部分文字的颜色