客户端开发
1. 开发环境
开发平台:Android Studio
开发语言:Java
api:Android 7.0 N api 24
2. 课程格子显示
- ScrollView拉动显示下方格子,采用相对布局
即可自定义格子大小,方便阅读简略信息,并可下拉滑动显示下面隐藏课程,具体实现请见Demo。 - 格子划分和背景显示的解决方案
由于每个格子都有显示课程内容的可能性,因此本应用采用最简便的一种方式进行实现,即自己定义TextView,实现内部透明外部实线形式,这样就可以添加自定义背景,具体实现请见Demo。
UI效果图如下: - 可选择周数显示该周所上课程
可以点击标题栏周数来选择其他周数,查看其他周应上的课程
UI效果图如下: - 从服务器动态获取课程信息+增删查改
本应用采取OkHttp开源框架实现客户端用户请求的发送和服务器响应的接收,并用GSON将服务器端传回的JSON或JSONArray转化为java对象。
注:Demo中由于未配置服务器,因此改为从本地SQLite获取course数据。 - 显示课程详细信息
通过自定义galleryView控件进行同一时段重叠课程的滑动显示,具体实现请见demo,
UI效果图如下:
3. 左滑动主菜单显示
显示滑动菜单界面布局使用了由support-v4提供的DrawerLayout,在其中放置了两个直接子控件,其中:
1)FrameLayout用于显示主界面的界面布局,
2)NavigationView用于在滑动菜单页面显示自定义布局。自定义布局中包含菜单标头和菜单选项,菜单标头由nav_header.xml实现,其中显示了当前日期及用户所在学院和用户头像;菜单选项由nav_menu.xml实现,其中显示了对规划的管理操作以及设置等选项。
效果图如下:
4. 爬虫
利用Android 开源库jsoup实现了从教务处网站爬取用户课程信息的功能,connect()方法连接教务处,直接利用带有session参数的cookie连接教务处的学生课表页面,解析返回的HTML页面获取该用户所选的全部课程并返回对象。
注:由于各个学校学院的教务处网站不尽相同,所以此Demo将爬虫省略。
5. 静音功能