基于Androi的天气预报软件的设计和实现

上传人:大米 文档编号:568481310 上传时间:2024-07-24 格式:PPT 页数:18 大小:2.97MB
返回 下载 相关 举报
基于Androi的天气预报软件的设计和实现_第1页
第1页 / 共18页
基于Androi的天气预报软件的设计和实现_第2页
第2页 / 共18页
基于Androi的天气预报软件的设计和实现_第3页
第3页 / 共18页
基于Androi的天气预报软件的设计和实现_第4页
第4页 / 共18页
基于Androi的天气预报软件的设计和实现_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《基于Androi的天气预报软件的设计和实现》由会员分享,可在线阅读,更多相关《基于Androi的天气预报软件的设计和实现(18页珍藏版)》请在金锄头文库上搜索。

1、基于Android天气预报软件的设计与实现1 项目背景2 概要设计3 详细设计4 测试及其他开发背景目的及意义可行性分析平台介绍系统流程图主界面更换城市界面测试总结功能框架数据库致谢内容简介 开发背景1Android是一种开放源码操作系统。22013年,Android在全球市场份达到75%。3Android在中国的前景十分广阔。4随着人们生活节奏的加快,精确地掌握每天的天气情况已成为一个人早上出门前的必修课。 目的及意义1提供准确的实时天气数据。2进一步扩大天气信息的覆盖面。3完善公共服务体系,更好地发挥气象事业对经济社会发展的现实性作用。 平台介绍Android平台的基本框架如下: 在And

2、roid系统中,为我们提供了四大基本组件,每个组件是一个视图,Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。 在Android平台上,集成了一个嵌入式关系型数据库SQLite。它占用的资源非常低,同时能够跟很多程序语言相结合,处理速度非常快。 可行性分析经济可行性技术可行性法律可行性总结操作可行性需求低平台成熟周期短环境完善人员多能掌握核心设备充足操作简便遵守法规绿色环保综上,本系统可以进行研发 系统流程图 本系统的流程比较清晰,首先天气数据每更新一次,系统就会通过HTTP向指定的地址发出数据

3、请求,若请求成功,则返回天气数据并通过JSON格式来解析数据,最终把解析到的数据显示在手机界面上,这样就完成了一次天气数据的更新。 功能框架 软件的功能框架如上图所示: 实时天气信息:用户可以查看指定城市的实时天气,包括温度、湿度、风力和穿衣指数等; 未来三天预报:用户可以查看到未来三天的天气情况; 更换城市:用户可以根据自己的实际情况选择自己想要查询的城市。 自动定位:可以获得当前用户所在的城市。 主界面 该界面综合使用了Android平台的各种常用组件,包括Button、TextView、ImageView等,界面的顶部显示当前选择的城市和天气数据刷新按钮,用户可以根据自己的需要随时通过该

4、按钮来刷新数据,右边为一个“更换城市”按钮,用户可以通过该按钮来更改其它城市。 首先,进入的是界面的主体部分,显示了当前城市的实时天气情况,包括时间、天气、温度、风力和湿度等信息。 其次,显示了未来三天的天气情况和穿衣指数提醒。 最后,显示了当前天气数据的发布时间和最近一次刷新时间。private void SetWeatherJson(String sNowWeatherString, String s6Detil) try jsonObject = new JSONObject(sNowWeatherString);jsonObject = jsonObject.getJSONObject

5、(weatherinfo);tvCityName.setText(jsonObject.getString(city);tvNowTemp.setText(jsonObject.getString(temp) + );tvTodayWindSD.setText(jsonObject.getString(WD)+ jsonObject.getString(WS) + + 湿度:+ jsonObject.getString(SD);/ 风力jsonObject = new JSONObject(s6Detil);jsonObject = jsonObject.getJSONObject(weath

6、erinfo);sdate_y = jsonObject.getString(date_y);tvIssueTime.setText(sdate_y.substring(5) + + jsonObject.getString(fchh) + :00);/ 设置发布时间tvToday.setText(sdate_y + + jsonObject.getString(week);/ 设置今天日期String img_title = jsonObject.getString(img_title1);/ 天气图标int weather_icon = getWeatherBitMapResource(i

7、mg_title);imageView1.setImageResource(weather_icon);tvPrompt.setText(jsonObject.getString(index_d);/ 穿衣提醒主界面核心代码: 更换城市界面 该界面包括两部分,分别是热门城市和所有城市,热门城市模块列举了国内主要的大城市,目的是方便用户选择,而所有城市则是显示了国内所有的城市数据,用户可以先选择省份,接着选择城市,最后选择县(区)这种显示来选择。选择完毕后可以通过确定按钮来提交设置。更换城市界面核心代码:public List getCitSet(int pro_id) cityList.cle

8、ar();/ 打开数据库SQLiteDatabase db1 = SQLiteDatabase.openOrCreateDatabase(DATABASE_PATH+ dbName, null);Cursor cursor = db1.query(citys, null, province_id= + pro_id, null,null, null, city_num);List cityListTemp = new ArrayList();while (cursor.moveToNext() String cityid = cursor.getString(cursor.getColumnI

9、ndexOrThrow(city_num);String cityn = cursor.getString(cursor.getColumnIndexOrThrow(name);cityList.add(new CityInfo(cityid, cityn);for (int i = 0; i cityList.size(); i+) if (!cityList.get(i).getName().contains(.) cityListTemp.add(new CityInfo(cityList.get(i).getCity_num(),cityList.get(i).getName();cu

10、rsor.close();db1.close();return cityListTemp;自动定位 调用安卓SDK的定位中的LocationClient和BDLocation等类以及BDLocationListener等接口,通过gps和网络来返回百度坐标系的定位结果。自动定位功能的核心代码:public class MyLocationListenner implements BDLocationListener Overridepublic void onReceiveLocation(final BDLocation location) dialog.dismiss();mIsStart

11、 = false;if (location = null) toastUtil.show(定位失败);return;AlertDialog.Builder build = new AlertDialog.Builder(WeatherChangeCityActivity.this);build.setTitle(定位成功).setMessage(当前城市: + location.getProvince() + -+ location.getCity() + -+ location.getDistrict().setPositiveButton(确定,new DialogInterface.On

12、ClickListener() Overridepublic void onClick(DialogInterface dialog,int which) CityInfo cityInfo = getCityByLoc(location.getCity(),location.getDistrict(); 数据库 Android平台上,集成了一个嵌入式关系型数据库SQLite。它占用资源非常的低,可能几百K就够了。它能够支持Windows/Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比Mysql、Postgr

13、eSQL这两款数据库管理系统快。 本数据库支持功能如下: 1.自动建表; 2.自动支持增删改操作; 3.查询方式灵活; 4.查询结果对象化; 5.查询结果灵活:查询结果支持对象化,也支持结果为ListMap形式。 测试 本测试我们测试的是主界面、更换城市界面和网络接口这三个模块,测试目的是验证修改城市后系统能否自动更新天气数据,从而验证系统功能的完整性,首先我们点击主界面右上角的“更改城市”按钮,把当前城市修改成昆山,点击确定按钮后系统当前的城市已经切换到昆山了,并且当前显示的天气数据也是昆山的数据,所以这三个模块的功能及测试结果都是是正常的。 总结 本次毕业设计是我在大学学习的最后一个阶段,这三个多月以来,从拿到题目的毫无头绪,到在网上查找各种相关资料,再到一个个功能逐步实现,最后终于能完整连贯的呈现,这中间经历了种种磨难与挣扎,当然也有兴奋与喜悦相间。 虽然该天气预报软件的基本功能已经实现,可以实时更新天气数据并且可以选择自己需要的城市的天气信息。但是由于本人水平有限,本软件也存在许多可以改进的地方,敬请谅解,欢迎指正。Thank you!感谢理工大软件学院对我的培养!感谢理工大软件学院对我的培养!感谢各任课老师对我的教导!感谢各任课老师对我的教导!感谢赵彦涛老师、李建林老师对我的指导!感谢赵彦涛老师、李建林老师对我的指导!感谢各位评审的审议!感谢各位评审的审议!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号