安卓开发项目之StudyApp

一、项目背景

  1. 用户的注册和登录,以及用户信息的修改。
  2. 答题系统的实现,用户可以做题,并查看正确答案。
  3. 学习平台的搭建,用户可以观看学习视频。
  4. 积分商城的实现,用户可以通过观看视频和答题获得积分,从而可以兑换商品。
    以上所有功能都实现服务器和前端联动,数据通过mysql数据库进行存储。除此之前,还进行了细节的优化。
    以下的图文仅作为自主研发的小项目的学习记录,重在思路。

二、StudyApp实现结果

1、MainActivity的四个页面
实现思路:MainActivity的四个xml界面通过适配器与viewPager绑定;底部菜单栏用了谷歌开源的BottomNavigationBar,从github中引入依赖。
2、注册登陆(包括个人信息的修改)

安卓开发项目之StudyApp_第1张图片 安卓开发项目之StudyApp_第2张图片 安卓开发项目之StudyApp_第3张图片 安卓开发项目之StudyApp_第4张图片 安卓开发项目之StudyApp_第5张图片 安卓开发项目之StudyApp_第6张图片 安卓开发项目之StudyApp_第7张图片
  1. 答题页面
    进入AnswerActivity后,所有的数据都将会被加载到三种类型的Fragment中,分别是ChoiceFragment、JudgmentFragment以及MultipleChoiceFragment。三种Fragment都将会通过AnswerPageAdapter被添加到该答题活动的ViewPager中。
安卓开发项目之StudyApp_第8张图片 安卓开发项目之StudyApp_第9张图片 安卓开发项目之StudyApp_第10张图片 安卓开发项目之StudyApp_第11张图片
  1. 学习视频播放页面
安卓开发项目之StudyApp_第12张图片
  1. 积分商城页面
安卓开发项目之StudyApp_第13张图片 安卓开发项目之StudyApp_第14张图片
  1. 冷加载页面
    冷加载页面用于处理请求页面需要加载大量网络视频或者图片,防止用户在等待过程中出现空白页,提供给用户更优的体验。我在初始登 录MainActivity和退出登录的时候用到该技术。我将该页面设置为StudyApp的logo。
安卓开发项目之StudyApp_第15张图片

三、使用的技术

  1. ListView、RecyclerView、CardView、WebView的使用。
  2. 自定义RecyclerViewAdapter、ListViewAdapter、AnswerPageAdapter的使用。
  3. 幻灯片放映,Banner类的使用。
  4. 计时器CountDownTimer类的使用。
  5. XUI框架的使用。
  6. 选择器Selector的使用。
  7. Nginx代理服务器的使用(如果请求网络视频或图片可以不用本地的反向代理服务器)。
  8. okHttp的使用。
  9. Bitmap加载网络图片、Glide加载视频和图片的使用。
  10. 线程锁,以及同步和异步请求的使用。
  11. 阿里巴巴fastJson技术的使用。
  12. 原生BottomNavigationBar的使用。
  13. 服务器使用Tomcat搭建的servlet实现。

四、有关配置

前端: Android Studio
后端: IntelliJ IDEA 2018.3.5
数据库: sqlyog、mysql
服务器:用户与数据库的交互采用servlet搭建的本机服务器(对应的功能如登录,需要一个Service和Servlet类即可),本地视频用nginx搭建服务器(视频需要下载放到Nginx文件目录下的html文件夹即可)。
ps:服务器和手机一定要在同一个局域网中哦!

五、开发项目过程中参考的链接

  1. UI设计来源:阿里巴巴矢量图库
  2. ViewPager加载Fragment,切换时onCreateView多次调用问题:防止多个fragment对象懒加载,切换时被销毁,获取不了该fragment中xml控件的值
  3. XUI框架,超好用
  4. 为TextView中的drawable图片添加监听事件
  5. 自定义BottomNavigationBar

你可能感兴趣的:(安卓开发,java,mysql,android,tomcat,app)