Skip to content

百度移动端训练营-结项安卓应用程序大作业

Notifications You must be signed in to change notification settings

eyja42/Baidu-SummerCamp

Repository files navigation

FinalProject

介绍

南京大学 - 计算机科学与技术系 -211220131詹昊翔的最终大作业。

很抱歉之前因为学校中其它事情时间冲突而错过了第一周的课,导致后面所有的进度都跟不上了……但是最终还是极限把所有回放都看完了,并基本完成了所有的内容。

软件架构

架构上是从Android Studio自带的那个有三个Fragment的Bottom Navigation Views Activity为基础建设的,分别对应了主页、视频、我的三个板块。天气页面,以及新闻和视频内容的详情页是跳转Activity实现的。

实现内容

首页:

  • 用RecycleView实现滚动效果展示新闻,以及点击新闻跳转到对应的详情页面。
  • 输入网址的输入框效果。
  • 左上角点击跳转到天气界面,右上角点击跳转到新闻编辑界面。跳转到天气界面时有1000ms的启动页效果;天气界面中的卡片内容使用ScrollView实现(这块是因为我是第一次进行安卓开发,当时还没看到recycleview这一课时自己研究写的);其中的按小时天气预报效果用RecycleView实现。

视频页:

  • 实现瀑布流页面效果;使用FrameLayout实现单个视频展示页的图片处于底部,白色文字浮在顶上的效果。

工程文件架构说明

  • java文件夹:
    • ~/ui中放了三个分页面的Fragment文件及对应的ViewModel。基本是按照安卓自带的结构改了个名字,以及自行修改了下onCreate()的行为之类;
    • utils中放的都是实现recycleView时封装出的类。因为天气卡片、新闻卡片和视频卡片的内容都不一样,所以使用单一的布局及ItemBean难以实现效果,就干脆依葫芦画瓢都写了一份。
    • 最后,放在外边的Activity结尾的文件就是各个用到的Activity。其中startActivity用于实现天气页启动时的跳转效果,我写了一个内部的异步进程,现在它的作用就是sleep(1000)后关闭启动页,之后可以写入实际作用,比如通过api从网上获取真实的天气数据之类的。
  • layout文件夹:
    • activity开头的都是Activity对应的布局文件,不做赘述;
    • fragment_xxx开头的三个文件对应mainActivity下切换的三个分页面;
    • recyclerview_item开头的是写recycleview时用到的布局文件。

图片资源都在res/drawable文件夹中,三个示例视频放在了res/raw文件夹中。其它没有需要特别说明的。

不足

  • 新建新闻的页面中的“添加新闻缩略图及头图”功能实现起来很困难,最终留着了,对应函数那里用Toast打印了个todo表明这个按钮是有用的。原因是尝试了两天都没有搞定高版本api下的文件系统访问,访问权限能够正常申请,编写的intent也能正确调起系统相册,只有debug时打印出的文件路径好像有问题。但是时间有限,来不及修了。
  • 视频的详情播放页没有实现ui设计图中的类短视频应用的播放界面。那种顶部黑色渐变的蒙版效果到底怎么搞定的啊……还有将VideoView的背景设置为黑色,最终也没有找到解决方案(期待看到优秀同学的解决方案来参考下)。试了下用FrameLayout将蒙版图片叠在VideoView上,遇到了些奇怪的bug。最后没来得及修,就先删掉了。 还有,右下角的几个按钮只是装饰,对应的功能没有实现。
  • 视频页的性能表现并不好,在虚拟机上很卡。但是在我的手机上什么问题都没有,应该是虚拟机适配问题……?最可能的原因应该是视频缩略图过大。

最后最后!球球老师给个好分!

我是通过学校的暑期课程平台选的,这两学分真的对我很重要!祝你以后写代码永远不出bug!

About

百度移动端训练营-结项安卓应用程序大作业

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages