基于 Java 天气预报 APP 的设计与实现【100011103】

您所在的位置:网站首页 设计得到app 基于 Java 天气预报 APP 的设计与实现【100011103】

基于 Java 天气预报 APP 的设计与实现【100011103】

2023-06-15 10:42| 来源: 网络整理| 查看: 265

天气预报 APP 的设计与实现 一、需求分析

背景

天气信息和人们的日常生活息息相关,随着人们活动范围的扩大和出行需要,天气预报已经成为人们生活不可缺少的一部分,在这样的市场需求的基础上,本人设计了天气预报软件,它可以提供天气相关信息和生活指数,用户可以通过软件及时获取近期的天气状况和变化,及时做好各方面的计划和防护措施。

需求总体介绍

天气预报的用户主要是对获取天气信息有需求的人群,对于普通用户来说,主要了解当日的天气情况,选择相应的穿衣搭配和出行安排,对于相关行业人员来说,可根据未来天气状况制定相关措施,保证行业项目的顺利实施。因此天气预报的受众需要了解目前天气状况和未来的天气变化等,对其他的城市天气状况也会有所关注。

系统的功能性需求自动定位当前位置,自动更新当前位置天气信息,也可查询不同城市的天气信息。查询信息的结果主要包括温度、天气状况、风力、空气指数、生活指数等。提供未来几天及小时天气状况并显示。提供个人偏好设置,分享天气信息,关于本软件等。用例图

系统的非功能性需求

用户界面需求

界面简洁明了,采用图标加文字结合的方式,易于用户理解,对于重要信息,放大进行显示,界面排列符合阅读逻辑。

软硬件需求

客户端操作系统:Android 4.0 及以上;

客户端硬件设备:Android 手机等移动终端

产品质量需求

二、系统设计

体系结构设计

系统功能模块划分

针对此天气预报 APP,按照设计的基本要求,可以将系统划分为下面几个功能模块:

天气显示界面模块

显示城市天气状况,包括温度,天气,风力,生活指数等信息,显示未来七天天气,及小时级天气。通过滑动切换不同城市的天气信息。

城市设置模块

编辑天气城市列表信息。

城市增加模块

用户可通过列表选择或搜索进行城市的添加。

分享模块

用户可通过分享按钮将天气信息分享给其他用户。

数据设计

本软件数据库主要包含用户添加的城市数据,结构较为简单,由一个城市表组成。

人机交互设计

界面流设计

功能界面原型设计

三、系统实现

系统目录结构

├─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 均进行了缓存处理。

天气预报主界面

界面展示

主界面是一个 fragment,采用 RelativeLayout(顶部栏)+ViewPager 来实现不同城市天气的切换,通过对 viewpager 监听实现顶部栏城市及背景的切换,用户在进入 app 时系统会自动进行定位并将当前位置设置当前城市,具体代码为:

城市管理

用户通过点击主界面右上角图标即可进入该界面,用户可以通过该界面进行快速选择城市,删除城市等功能,选择城市后即可快速跳转到 viewpager 制定页面。具体代码如下:

城市选择

城市选择界面首先会进行定位,页面分为五个部分,分别为搜索栏,定位栏,热门城市,城市列表,侧边滑动条,用户可通过选择或搜索来完成城市的添加。部分代码如下:

天气分享

用户点击页面的右上角即可进行当前城市信息的分享操作。具体代码如下:

雷达云图

雷达云图功能采用 webview 方式,接入中国天气网雷达云图 h5 页面实现。

我的

四、总结

项目技术总结

整个 app 实现了对天气预报的获取、展示,位置的获取等功能。通过安卓网络编程的方式可以很方便的获取到天气 JSON 数据,通过使用 GSON 库,解析为我们软件需要的数据结构,给软件的编写提供了极大的便利。安卓的 Activity、Fragment、Service 等提供了强大的数据处理功能,使各个页面间可以灵活的传输数据。界面采用了 viewpager 与 fragment 结合的方式进行设计,每个 fragment 对应一个城市页面,可以通过滑动进行翻页控制。且为防止多页面造成的卡顿,app 会首先进行 fragment 的初始化缓存,使软件响应速度得到提升。

技术创新及特点

通过 GSON 库解析请求到的 JSON 数据,GSON 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符转成一个 Java 对象,或者将一个 Java 转化为 JSON 字符串,使用更加灵活。

对于一些通用的工具函数进行了封装,便于使用。

城市天气信息与软件背景对应更新,增加了软件的统一性。

采用下拉刷新的方式进行天气信息的更新,更加方便快捷。

♻️ 资源

在这里插入图片描述

大小: 22.2MB ➡️ 资源下载:https://download.csdn.net/download/s1t16/87526929 注:如当前文章或代码侵犯了您的权益,请私信作者删除!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3