家资是何物,积帙列梁梠。这篇文章主要讲述Android天气预报设计相关的知识,希望能为你提供帮助。
——嵌入式软件开发
名字 | 功能模块 | 代码行数 | 备注 |
谢灿辉 | Widget | 200 | 桌面小程序 |
李杨敏 | GPS定位,百度地图API | 100-150 | 获取当前所在城市 |
丁小芳 | 城市选择Activity,天气API获取天气 | 100-200 | 包括数据库交互 |
本软件是一个天气类应用软件,带有widget,启动软件后可以定位所在城市或手动设置后实现天气查询,PM2.5查询,7天气温曲线,我们可从图片和文字中显现最近一周天气预报和相关温馨提示等。
文章图片
文章图片
文章图片
这些数据的提供都通过后台服务获取,而后台服务会在一定时间间隔通过API获取并存储在数据库当中。
从以上可看出这个软件的主要功能有:
①启动APP Widget应用程序;
②设置界面,设置所要显示天气预报的城市;
③详细界面,通过图片文字显示当前一周的天气预报、温馨提示及气温曲线变化;
④显示界面,通过图片文字显示时间、温度等;
④分享界面
系统设计
- 模块1.天气预报的显示
为了用户的体验更加便捷,我们将软件作为一个小插件定在了手机主面上,调用的数据使用在桌面上显示。而在用户界面上使用了(AppWidget)框架结构,提供直观的交互操作。
天气Widget开发步骤:
①设计Widget的布局
Res/layout/widget.xmlres/drawable/widget_background.xml
创建Wiget的第一个步骤就是设计并实现Wiget的组件布局,就是Widget和用户交互的界面。Widget与Activity的布局设计和实现方法十分相似,都是在/res/layout目录中建立XML的布局资源文件
文章图片
②定义Widget的元数据
Widget元数据文件保存在/res/xml/weather_widget_4x2.xml
文章图片
③实现Widget的添加、删除、更新
实现Widget的添加、删除、更新等过程,主要是通过AppWidgetProvider类来实现,这个类本身继承BroadcastReceiver,用来接收与Widget相关的更新、删除、生效等消息。当AppWidgetProvider接收到这些消息以后,会分别调用相应的事件处理函数。
事件
调用函数
说明
ACTION_APPWIDGET_UPDATE
OnUpdate()
Widget更新
ACTION_APPWIDGET_DELETED
OnDelete()
Widget删除
ACTION_APPWIDGET_ENABLED
onEnabled()
Widget生效
ACTION_APPWIDGET_DISABLED
onDisabled()
Widget失效
文章图片
④在androidManifest.xml文件中声明Widget
/AndroidManifest.xml
要让Widget生效还需在AndroidManifest.xml文件中进行声明,主要在该文件中声明AppWidgetProvider类
文章图片
- 数据交互1.利用API获取天气数据,数据获取地址:http://sixweather.3gpk.net/SixWeather.aspx?city=%E5%B9%BF%E5%B7%9E
获取天气的关键代码:
Com.yz.util/GetWeatherTask.java
文章图片
向天气接口发送HTTP GET 请求
文章图片
服务器返回XML文档,包含天气内容
文章图片
- 自定定位城市
代码:请求定位权限
文章图片
百度地图API
文章图片
文章图片
- 用户交互设置城市(数据库读取过程)
【Android天气预报设计】Com.yz.app
文章图片
Com.yz.db
文章图片
文章图片
- 系统管理1. 页面实现布局管理
根据需求分析可知,该应用程序应包含四个主要的用户界面。显示界面中,应包含城市、温度和时间等信息;详细界面中,又包含了三个界面,分别为天气中心、温馨提示和气温曲线,这其中包含了当前以及后六天的天气预报,气温走势等信息;设置界面,主要是为了用户手动查询所需城市天气预报;分享界面提供了将天气预报信息分享出去的功能。
图片:
/res/layout/activit_weather_center.xml
文章图片
分享途径/assets/platforms.xml
文章图片
2. 后台服务(唤醒设备时候更新)
文章图片
文章图片
- 数据库设计与实现(手工指定地点情况)City.db->
获取城市->
天气API获取天气->
处理->
显示
六、程序模块设计
从这功能需求我们将整个程序分为了四个功能模块:
①程序启动
②用户界面
③后台服务
④数据库适配器
文章图片
文章图片
文章图片
文章图片
推荐阅读
- 完整版unity安卓发布流程(包括SDK有原生系统依赖关系的工程)
- LoadRunner--录制手机APP脚本
- Tomcat Web Application Deployment
- 微信支付app的各种坑
- Android如何添加多张引导页
- JavaFX环境配置详细步骤
- JavaFX InnerShadow效果
- 安装Eclipse详细步骤
- JavaFX ImageInput