隐藏非本周课程
https://github.com/zfman/TimetableView
一个开源的、完善的、简洁的课程表控件
/**
* 隐藏非本周课程
* 修改了内容的显示,所以必须更新全部(性能不高)
* 建议:在初始化时设置该属性
*/
protected void hideNonThisWeek() {
mTimetableView.getScheduleManager().setShowNotCurWeek(false);
mTimetableView.updateView();
}
显示非本周课程
/**
* 显示非本周课程
* 修改了内容的显示,所以必须更新全部(性能不高)
* 建议:在初始化时设置该属性
*/
protected void showNonThisWeek() {
mTimetableView.getScheduleManager().setShowNotCurWeek(true);
mTimetableView.updateView();
}
设置间距以及弧度
/**
* 设置间距以及弧度
* 该方法只能同时设置四个角的弧度,设置单个角的弧度可参考下文
*/
protected void setMarginAndCorner() {
mTimetableView.getScheduleManager()
.setCorner(0)
.setMarTop(0)
.setMarLeft(0);
mTimetableView.updateView();
}
设置单个角弧度
/**
* 设置角度(四个角分别控制)
*
* @param leftTop
* @param rightTop
* @param rightBottom
* @param leftBottom
*/
public void setCorner(final int leftTop, final int rightTop, final int rightBottom, final int leftBottom) {
mTimetableView.getScheduleManager()
.setOnItemBuildListener(new OnItemBuildAdapter() {
@Override
public void onItemUpdate(FrameLayout layout, TextView textView, TextView countTextView, Schedule schedule, GradientDrawable gd) {
super.onItemUpdate(layout, textView, countTextView, schedule, gd);
//数组8个元素,四个方向依次为左上、右上、右下、左下,
// 每个方向在数组中占两个元素,值相同
gd.setCornerRadii(new float[]{leftTop, leftTop, rightTop, rightTop, rightBottom, rightBottom, leftBottom, leftBottom});
}
});
mTimetableView.updateView();
}
修改显示的文本
/**
* 修改显示的文本
*/
public void buildItemText() {
mTimetableView.getScheduleManager()
.setOnItemBuildListener(new OnItemBuildAdapter() {
@Override
public String getItemText(Schedule schedule, boolean isThisWeek) {
if (isThisWeek) return "[本周]" + schedule.getName();
return "[非本周]" + schedule.getName();
}
});
mTimetableView.updateView();
}
课程构建拦截
/**
* 将名为"计算机组成原理"的课程拦截下来,该课程不会被构建
*/
public void intercept() {
mTimetableView.getScheduleManager()
.setOnItemBuildListener(new OnItemBuildAdapter() {
@Override
public boolean interceptItemBuild(Schedule schedule) {
if (schedule.getName().equals("计算机组成原理")) return true;
return false;
}
});
mTimetableView.updateView();
Toast.makeText(this,"已拦截《计算机组成原理》",Toast.LENGTH_SHORT).show();
}
设置非本周课的背景
/**
* 设置非本周课的背景
*
* @param color
*/
public void setNonThisWeekBgcolor(int color) {
mTimetableView.getScheduleManager()
.getColorPool().setUselessColor(color);
mTimetableView.updateView();
}
课程重叠的样式
/**
* 修改课程重叠的样式,在该接口中,你可以自定义出很多的效果
*/
protected void modifyOverlayStyle() {
mTimetableView.getScheduleManager()
.setOnItemBuildListener(new OnItemBuildAdapter() {
@Override
public void onItemUpdate(FrameLayout layout, TextView textView, TextView countTextView, Schedule schedule, GradientDrawable gd) {
super.onItemUpdate(layout, textView, countTextView, schedule, gd);
//可见说明重叠,取消角标,添加角度
if (countTextView.getVisibility() == View.VISIBLE) {
countTextView.setVisibility(View.GONE);
gd.setCornerRadii(new float[]{0, 0, 20, 20, 0, 0, 0, 0});
}
}
});
mTimetableView.updateView();
}
上一篇:全网第二好的Android课程表控件之侧边栏
下一篇:全网第二好的Android课程表控件之颜色池