客户端开发

1. 开发环境

开发平台:Android Studio
开发语言:Java
api:Android 7.0 N api 24

2. 课程格子显示

  • ScrollView拉动显示下方格子,采用相对布局
    即可自定义格子大小,方便阅读简略信息,并可下拉滑动显示下面隐藏课程,具体实现请见Demo
  • 格子划分和背景显示的解决方案
    由于每个格子都有显示课程内容的可能性,因此本应用采用最简便的一种方式进行实现,即自己定义TextView,实现内部透明外部实线形式,这样就可以添加自定义背景,具体实现请见Demo
    UI效果图如下:
  • android 仿超级课程表 android课程表怎么实现_java

  • 可选择周数显示该周所上课程
    可以点击标题栏周数来选择其他周数,查看其他周应上的课程
    UI效果图如下:
  • android 仿超级课程表 android课程表怎么实现_android_02

  • 从服务器动态获取课程信息+增删查改
    本应用采取OkHttp开源框架实现客户端用户请求的发送和服务器响应的接收,并用GSON将服务器端传回的JSON或JSONArray转化为java对象。

    注:Demo中由于未配置服务器,因此改为从本地SQLite获取course数据。
  • 显示课程详细信息
    通过自定义galleryView控件进行同一时段重叠课程的滑动显示,具体实现请见demo,
    UI效果图如下:
  • android 仿超级课程表 android课程表怎么实现_android 仿超级课程表_03

3. 左滑动主菜单显示

显示滑动菜单界面布局使用了由support-v4提供的DrawerLayout,在其中放置了两个直接子控件,其中:
1)FrameLayout用于显示主界面的界面布局,
2)NavigationView用于在滑动菜单页面显示自定义布局。自定义布局中包含菜单标头和菜单选项,菜单标头由nav_header.xml实现,其中显示了当前日期及用户所在学院和用户头像;菜单选项由nav_menu.xml实现,其中显示了对规划的管理操作以及设置等选项。

效果图如下:

android 仿超级课程表 android课程表怎么实现_java_04

4. 爬虫

利用Android 开源库jsoup实现了从教务处网站爬取用户课程信息的功能,connect()方法连接教务处,直接利用带有session参数的cookie连接教务处的学生课表页面,解析返回的HTML页面获取该用户所选的全部课程并返回对象。
注:由于各个学校学院的教务处网站不尽相同,所以此Demo将爬虫省略。

5. 静音功能