前言
最近在学习课程表的制作方法,并没有发现一些已经封装好的课表开源库,于是突发奇想封装了一个这样的课程表控件,正好也学习了如果发布自己的第三方库。
项目的地址:CourseTableView
推荐阅读:教你自己写Android第三方库
介绍
CourseTableView 是一个让你快速方便的创建课程表视图的库
平台要求
- Android SDK 15+
基本使用
- 在你的配置文件中添加 JitPack的代码仓库
- Gradle
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- Maven
jitpack.io
https://jitpack.io
- 添加依赖
- Gradle
dependencies {
compile 'com.github.YueYongDev:CourseTableView:v1.0'
}
- Maven
com.github.YueYongDev
CourseTableView
v1.0
- 在你想要展示你的课程表的那个界面添加“CourseTableView”
- 同时,你需要在Activity中创建
Course
对象
Course c1 = new Course();
c1.setDay(1);
c1.setDes("第一节课");
c1.setJieci(1);
c1.setBg_Color(color[2]);
Course c2 = new Course();
c2.setDay(6);
c2.setDes("第一节课");
c2.setJieci(3);
c2.setBg_Color(color[3]);
- 创建一个集合,并把之前创建的对象添加进去
List list = new ArrayList<>();
list.add(c1);
list.add(c2);
- 初始化你的
coursetableview
并且执行updateCourseViews
方法
CourseTableView courseTableView = (CourseTableView) findViewById(R.id.ctv);
courseTableView.updateCourseViews(list);
扩展
更改课程背景
你可以使用以下的预置背景:
private int color[] = {
R.drawable.course_info_blue,
R.drawable.course_info_brown,
R.drawable.course_info_cyan,
R.drawable.course_info_deep_orange,
R.drawable.course_info_deep_purple,
R.drawable.course_info_green,
R.drawable.course_info_indigo,
R.drawable.course_info_light_blue,
R.drawable.course_info_light_green,
R.drawable.course_info_lime,
R.drawable.course_info_orange,
R.drawable.course_info_pink,
R.drawable.course_info_purple,
R.drawable.course_info_red,
R.drawable.course_info_teal,
R.drawable.course_info_yellow
};
也可以选择自定义你的背景:
- 创建一个 Drawable resource file.
bg_resource.xml
- 使用这个资源文件作为背景
int bg_resource = R.drawable.bg_resource;
c3.setBg_Color(bg_resource);
使课表可以点击
执行以下方法便可以响应点击事件
courseTableView.setOnCourseItemClickListener(new CourseTableView.OnCourseItemClickListener() {
@Override
public void onCourseItemClick(TextView tv, int jieci, int day, String des) {
String string = tv.getText().toString();
Toast.makeText(getApplicationContext(), string, Toast.LENGTH_SHORT).show();
}
});
用法例子详见Demo