Android课程表客户端实现方案

客户端开发

1. 开发环境

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

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

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

  • 可选择周数显示该周所上课程
    可以点击标题栏周数来选择其他周数,查看其他周应上的课程
    UI效果图如下:
    course table of another week

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

  • 显示课程详细信息
    通过自定义galleryView控件进行同一时段重叠课程的滑动显示,具体实现请见demo,具体实现请见Demo
    UI效果图如下:
    detailed information of selected course

3. 左滑动主菜单显示

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

效果图如下:
slide navigation menu

4. 爬虫

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

5. 静音功能

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


附:Demo Sourse Code 详见Github

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值