Android课程表客户端实现方案

客户端开发

1. 开发环境

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

2. 课程格子显示

  • ScrollView拉动显示下方格子,采用相对布局
    即可自定义格子大小,方便阅读简略信息,并可下拉滑动显示下面隐藏课程,具体实现请见Demo。

  • 格子划分和背景显示的解决方案
    由于每个格子都有显示课程内容的可能性,因此本应用采用最简便的一种方式进行实现,即自己定义TextView,实现内部透明外部实线形式,这样就可以添加自定义背景,具体实现请见Demo。
    UI效果图如下:
    Android课程表客户端实现方案_第1张图片

  • 可选择周数显示该周所上课程
    可以点击标题栏周数来选择其他周数,查看其他周应上的课程
    UI效果图如下:
    Android课程表客户端实现方案_第2张图片

  • 从服务器动态获取课程信息+增删查改
    本应用采取OkHttp开源框架实现客户端用户请求的发送和服务器响应的接收,并用GSON将服务器端传回的JSON或JSONArray转化为java对象。
    详细使用方式请见:OkHttp使用帮助文档 & GitHub gson
    注:Demo中由于未配置服务器,因此改为从本地SQLite获取course数据。

  • 显示课程详细信息
    通过自定义galleryView控件进行同一时段重叠课程的滑动显示,具体实现请见demo,具体实现请见Demo。
    UI效果图如下:
    Android课程表客户端实现方案_第3张图片

3. 左滑动主菜单显示

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

效果图如下:
Android课程表客户端实现方案_第4张图片

4. 爬虫

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

5. 静音功能

详见我的下一篇博客:Android实现静音功能


附:Demo Sourse Code 详见Github

你可能感兴趣的:(android,android开发)