客户端开发

1. 开发环境

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

2. 课程格子显示

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

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

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

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

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

3. 左滑动主菜单显示

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

效果图如下:

4. 爬虫

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

5. 静音功能

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


附:Demo Sourse Code 详见Github

Android课程表客户端实现方案相关推荐

  1. Android Webview H5 秒开方案实现

    本文首发于微信公众号「玉刚说」 原文链接:Android Webview H5 秒开方案实现 前言 现在许多app都嵌入了H5页面, 然而WebView加载速度慢这个问题却一直影响着用户的体验, 所以 ...

  2. 智能会议系统(34)---Android语音通话实现方案及相关技术介绍

    Android语音通话实现方案及相关技术介绍 Android语音通话实现方案及相关技术介绍 语音通话 Step1语音采集和输出 Step2编解码方式 Step3网络传输 Step4去噪声消回音 语音通 ...

  3. Android新闻客户端实训-Day1类Day2接口基操

    结束了一些事情,本以为可以好好玩一段时间,结果紧接着又来了Android实训,因为这个实训已经开了一段时间了,我中途加入已经不赶趟了,但出于兴趣,准备今天开始跟着老师的笔记的源码从头开始自己摸索着学一 ...

  4. android jsoup 课程表,使用jsoup爬取数据实现android课程表

    说明:只是爬虫的一个实现案例,所以没有多做功能,只做了登录跟课表功能,课表有修改周次,单击课程显示课程详细信息等功能. 开发平台:Android Studio 界面 使用TimetableView a ...

  5. Android语音通话实现方案及相关技术介绍

    Android语音通话实现方案及相关技术介绍 Android语音通话实现方案及相关技术介绍 语音通话 Step1语音采集和输出 Step2编解码方式 Step3网络传输 Step4去噪声消回音 语音通 ...

  6. Android 双u盘方案

     1      L1813系统上双U盘设计方案--系统设计 1.1     方案背景 Android原生的磁盘管理方案,设计的思想是将EMMC上的空间通过sdcard的server模拟成一个Sto ...

  7. 【转载】Android微信智能心跳方案

    PS: 原文链接为: [Android微信智能心跳方案],作者为 微信团队的 phoenix 这里转载,主要是为了学习这个智能心跳方案,并实践之. 前言:在13年11月中旬时,因为基础组件组人手紧张, ...

  8. Android 开发之多种方案PDF阅读

    Android 开发之多种方案PDF阅读 最近开发中涉及到阅读港股公告,但是HK股票的公告都是坑,居然是pdf的,所以没办法,就要研究安卓pdf阅读,期间踩了点坑-- 安卓的webview与ios 的 ...

  9. Android课程表架构简要分析

    之前一直是课程格子的忠实粉丝,非常喜欢它提供的课表功能,所以趁着毕业有时间学习了Android,历时一个月写出了一个功能较全面的课表APP,名字暂时叫Miao课表,先上效果图吧. 实现思路 整体功能结 ...

最新文章

  1. 极光推送(不定期更新)
  2. C语言经典例1-无重复数字的三位数
  3. mvc @html.checkbox,MVC - @Html.CheckBoxFor
  4. 210312阶段三通过sqlite3源码安装sqlite3
  5. nyoj 71 独木舟上的旅行 贪心
  6. 获取项目根路径,并在其下创建一个名称为userData 的目录。
  7. delphi7 如何判定dbgrid两行重复_教你如何在服装上加入好看的毛线刺绣花边
  8. 【C语言】创建一个函数,判断某一正整数是否为水仙花数,并调用这个函数找出1000以内所有水仙花数...
  9. matlab 动画_MATLAB作图实例:51:表面动画
  10. blob类型_MySQL:创建表时如何选择合适的字段类型
  11. k8s与日志--journalbeat源码解读
  12. python django做网页论文_Python Web程序-Django框架搭建网站的简单介绍
  13. ps3 安装linux,PlayStation 3上安装Ubuntu Linux[图文]
  14. jbox弹窗_关于使用 jBox 对话框的提交不能弹出问题解决方法
  15. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例14
  16. 科普:淘宝网的反爬虫变迁史
  17. 低频声音功率放大器电子设计报告
  18. 安装oracle数据库过程中系统表空间,Oracle数据库安装及配置
  19. SSH远程登录原理学习
  20. java二叉树详解_最全二叉树:完整详解二叉树的遍历以及完全二叉树等6种二叉树...

热门文章

  1. 从数据结构到Python实现:如何使用深度学习分析医学影像
  2. str.indexOf()
  3. 洛谷刷题C语言:Okviri、R2、ABC、Aron、报名签到
  4. 人脸自收集数据集辅助制作工具——人脸姿态数据标注
  5. 如何设置select,input只读不可编辑且值可传递
  6. 上网/游戏/看剧太慢了:瞧瞧是不是运营商干的
  7. Android 使用ADB命令启动浏览器并访问指定的URL
  8. 【C语言番外1】三子棋的实现
  9. OJ实验5-8 使用函数求圆台体积OJ
  10. 马云不再任蚂蚁实控人/ 罗永浩遭投资人炮轰/ 三星利润暴减七成... 今日更多新鲜事在此...