# 天气预报 APP 的设计与实现
# 一、需求分析
背景
天气信息和人们的日常生活息息相关,随着人们活动范围的扩大和出行需要,天气预报已经成为人们生活不可缺少的一部分,在这样的市场需求的基础上,本人设计了天气预报软件,它可以提供天气相关信息和生活指数,用户可以通过软件及时获取近期的天气状况和变化,及时做好各方面的计划和防护措施。
需求总体介绍
天气预报的用户主要是对获取天气信息有需求的人群,对于普通用户来说,主要了解当日的天气情况,选择相应的穿衣搭配和出行安排,对于相关行业人员来说,可根据未来天气状况制定相关措施,保证行业项目的顺利实施。因此天气预报的受众需要了解目前天气状况和未来的天气变化等,对其他的城市天气状况也会有所关注。
- 系统的功能性需求
- 自动定位当前位置,自动更新当前位置天气信息,也可查询不同城市的天气信息。
- 查询信息的结果主要包括温度、天气状况、风力、空气指数、生活指数等。
- 提供未来几天及小时天气状况并显示。
- 提供个人偏好设置,分享天气信息,关于本软件等。
- 用例图
![](https://www.writebug.com/myres/static/uploads/2022/6/6/169941781cadb667ca8629a7321de330.writebug)
系统的非功能性需求
用户界面需求
界面简洁明了,采用图标加文字结合的方式,易于用户理解,对于重要信息,放大进行显示,界面排列符合阅读逻辑。
软硬件需求
客户端操作系统:Android 4.0 及以上;
客户端硬件设备:Android 手机等移动终端
产品质量需求
# 二、系统设计
体系结构设计
系统功能模块划分
针对此天气预报 APP,按照设计的基本要求,可以将系统划分为下面几个功能模块:
天气显示界面模块
显示城市天气状况,包括温度,天气,风力,生活指数等信息,显示未来七天天气,及小时级天气。通过滑动切换不同城市的天气信息。
城市设置模块
编辑天气城市列表信息。
城市增加模块
用户可通过列表选择或搜索进行城市的添加。
分享模块
用户可通过分享按钮将天气信息分享给其他用户。
![](https://www.writebug.com/myres/static/uploads/2022/6/6/9a5ab1c3957e9ac8cc09bfb8b2814758.writebug)
数据设计
本软件数据库主要包含用户添加的城市数据,结构较为简单,由一个城市表组成。
人机交互设计
界面流设计
![](https://www.writebug.com/myres/static/uploads/2022/6/6/fcc631e91280c42834745cba6d7b049b.writebug)
功能界面原型设计
# 三、系统实现
系统目录结构
├─build
├─libs
└─src
├─androidTest
├─main
│ ├─assets
│ ├─Java
│ │ └─com
│ │ └─taimin
│ │ └─weatherforecast
│ │ ├─Adapter //适配器目录
│ │ ├─bean //bean 类
│ │ ├─db //数据库适配器
│ │ ├─fragment //fragment 文件
│ │ ├─utils //工具类
│ │ └─view //view 文件
│ └─res
│ ├─drawable
│ ├─drawable-v24
│ ├─layout
│ ├─mipmap-anydpi-v26
│ ├─mipmap-hdpi
│ ├─mipmap-mdpi
│ ├─mipmap-xhdpi
│ ├─mipmap-xxhdpi
│ ├─mipmap-xxxhdpi
│ └─values
└─test
系统功能实现
软件通过 activity+fragment 进行布局,通过控制 fragment 的切换来切换不同的页面,为了防止重复切换带来的卡顿,fragment 均进行了缓存处理。
天气预报主界面
界面展示
![](https://www.writebug.com/myres/static/uploads/2022/6/6/2a31b2d9ad43182dafcf9401cdddf4bd.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/6/1feda9a8673de532c55e0e8e9f667999.writebug)
主界面是一个 fragment,采用 RelativeLayout(顶部栏)+ViewPager 来实现不同城市天气的切换,通过对 viewpager 监听实现顶部栏城市及背景的切换,用户在进入 app 时系统会自动进行定位并将当前位置设置当前城市,具体代码为:
城市管理
![](https://www.writebug.com/myres/static/uploads/2022/6/6/a688e091667daff44e3f73bb2f90c69f.writebug)
用户通过点击主界面右上角图标即可进入该界面,用户可以通过该界面进行快速选择城市,删除城市等功能,选择城市后即可快速跳转到 viewpager 制定页面。具体代码如下:
城市选择
![](https://www.writebug.com/myres/static/uploads/2022/6/6/3bb31fa5e169b37df3610dd978fbc767.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/6/db271f3a04599920c2cb0a610d75e56a.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/6/5df2f13f52e1d5b46044e36a599f4330.writebug)
城市选择界面首先会进行定位,页面分为五个部分,分别为搜索栏,定位栏,热门城市,城市列表,侧边滑动条,用户可通过选择或搜索来完成城市的添加。部分代码如下:
天气分享
![](https://www.writebug.com/myres/static/uploads/2022/6/6/deb03a3bddb5a3a91570a056af2999f2.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/6/5a00a5ee1e88184c6123276be2e093c6.writebug)
用户点击页面的右上角即可进行当前城市信息的分享操作。具体代码如下:
雷达云图
![](https://www.writebug.com/myres/static/uploads/2022/6/6/f2c12d422fd8030b86093dfd21510a2c.writebug)
雷达云图功能采用 webview 方式,接入中国天气网雷达云图 h5 页面实现。
我的
![](https://www.writebug.com/myres/static/uploads/2022/6/6/23fa89a623fefdb53ec543f8f4fa695a.writebug)
# 四、总结
项目技术总结
整个 app 实现了对天气预报的获取、展示,位置的获取等功能。通过安卓网络编程的方式可以很方便的获取到天气 JSON 数据,通过使用 GSON 库,解析为我们软件需要的数据结构,给软件的编写提供了极大的便利。安卓的 Activity、Fragment、Service 等提供了强大的数据处理功能,使各个页面间可以灵活的传输数据。界面采用了 viewpager 与 fragment 结合的方式进行设计,每个 fragment 对应一个城市页面,可以通过滑动进行翻页控制。且为防止多页面造成的卡顿,app 会首先进行 fragment 的初始化缓存,使软件响应速度得到提升。
### 技术创新及特点
通过 GSON 库解析请求到的 JSON 数据,GSON 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符转成一个 Java 对象,或者将一个 Java 转化为 JSON 字符串,使用更加灵活。
对于一些通用的工具函数进行了封装,便于使用。
城市天气信息与软件背景对应更新,增加了软件的统一性。
采用下拉刷新的方式进行天气信息的更新,更加方便快捷。
### 个人收获与体会
经过本学期对 Android 开发的学习以及本项目的编写,使我学到了许多开发相关的知识,比如 Android 环境的搭建,Intent、Activity、fragment、SQLite 的用法以及网络编程相关内容。因为本学期同时开展了软件工程课程,使我对软件的工程化构建有了一个初步的了解,避免了以往编写程序时耦合高、软件功能未分离等缺点。同时也让我了解到了 Android 的布局方式,使我编写出了美观的软件界面。软件的编写不是一帆风顺的,在使用 view pager 做滑动切换时,我遇到了页面卡顿、数据不更新�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源包含文件:课程lunwen+api导入说明+项目源码及APK文件 整个app实现了对天气预报的获取、展示,位置的获取等功能。通过安卓网络编程的方式可以很方便的获取到天气json数据,通过使用GSON库,解析为我们软件需要的数据结构,给软件的编写提供了极大的便利。安卓的Activity、Fragment、Service等提供了强大的数据处理功能,使各个页面间可以灵活的传输数据。界面采用了viewpager与fragment结合的方式进行设计,每个fragment对应一个城市页面,可以通过滑动进行翻页控制。且为防止多页面造成的卡顿,app会首先进行fragment的初始化缓存,使软件响应速度得到提升。详细介绍参考:https://biyezuopin.blog.csdn.net/article/details/125253565
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/DOC.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/DOCX.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JAR.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/JPG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/PNG.png)
共 175 条
- 1
- 2
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
shejizuopin
- 粉丝: 1w+
- 资源: 1294
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)
- 1
- 2
前往页