logo资料库

天气预报课程设计报告.doc

第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
资料共15页,剩余部分请下载后查看
软 件 设 计 报 告 课程名称: 移动计算技术 设计题目: 天气预报程序 院 系: 计算机科学与工程学院 专 业: 软件工程 班 级: 学 号: 姓 名: 指导教师: 设计地点: 殷旭东 N6-101 开课时间: 2011 至 2012 学年第 1 学期 常熟理工学院计算机科学与工程学院 制 - 3 -
学生姓名 成绩 评语: 指导教师(签名) 年 月 日 4
目录 1. 设计目 的和任务.........................................................................................1 2. 开发环境.....................................................................................................1 2.1 硬件环境..............................................................................................1 2.2 软件环境..............................................................................................1 3.设计题目.......................................................................................................1 3.1 题目名称..............................................................................................1 3.2 题目详细描述........................................................................................1 3.3 功能要求...............................................................................................1 4. 相关技术及知识点........................................................................................1 4.1 Andriod 用户界面......................................................................................1 4.2 菜 单 .....................................................................................2 5. 设计与实现...................................................................................................2 5.1 程 序 启 动 界 面..................................................................................2 5.2 获取 天气信 息.....................................................................................3 5.3 设置并保存天气信息................................................................................5 5.4 WeatherActivity.java...................................................................................7 5.5 同时查询多个城市..................................................................................10 6. 总结.............................................................................................................12 7. 参 考 资 料……….....................................................…………………….....12 5
《移动计算技术》软件设计报告 1. 设计目的和任务 通过学习,掌握 Android 移动应用程序开发的基本技术,能开发具有系统标准界面的实用程序, 或简单的小游戏,以及简单网络程序,为以后从事该方向深入学习研究做好准备。 2. 开发环境 2.1 硬件环境 CPU:PentiumⅢ733 或以上;内存:128MB 或以上容量; 硬盘:至少 100MB 剩余空间。 2.2 软件环境 装 有 Eclipse、JDK、 Android SDK 的 计 算机 3. 设计题目 3.1 题目名称 天 气 预报 程 序 3.2 题目详细描述 设计一个能实时访问天气预报信息的实用程序,城市名称以列表形式出现,供用户选择, 能关注的多个城市。可在主界面上对这些城市用< >切换,列表形式显示 2-6 天的天气数据,加 入天气图标(晴、雨、雪、阴、多云等)。 3.3 功能要求 (1) 采用选择省份、城市列表的形式,代替输入城市名的方式。 (2) 能设置关注的多个城市。可在主界面上对这些城市用< >切换。 (3) 列表形式显示 2-6 天的天气数据,加入天气图标(晴、雨、雪、阴、多云等)。 4.相关技术及知识点 4.1 Android 用户界面 Android 系 统 的界 面 控 件 分 为定 制 控 件 和 系统 控 件 。 定 制 控件 是 用 户 独 立开 发 的 控 件 ,或 通 过 继 承 并修 改 系 统 控 件后 所 产 生 的 新控 件 。 能 够 为用 户 提 供 特 殊的 功 能 或 与 众不 同 的 显 示 需求 方 式 。 系 统 控件 是 Android 系 统 提供 给 用 户 已 经封 装 的 界 面 控件 。提 供 在应 用 程 序 开 发过 程 中 常 见 功 能 控 件 。 系 统 控 件 更 有 利 于 帮 助 用 户 进 行 快 速 开 发 , 同 时 能 够 使 Android 系 统 中应 用 程 序 的 界面 保 持 一 致 性 。常 见 的系 统 控 件 包 括 TextView、EditText、Button、 ImageButton、 Checkbox、RadioButton、 Spinner、 ListView 和 TabHost ( 1) TextView 是 一 种用 于 显 示 字 符串 的 控 件 ( 2) Button 是 一 种按 钮 控 件 , 用户 能 够 在 该 控件 上 点 击 , 并后 引 发 相 应 的事 件 处 理 函 数 - 1 -
( 3) ImageButton 用 以 实现 能 够 显 示 图像 功 能 的 控 件按 钮 ( 4) CheckBox 是 一 个同 时 可 以 选 择多 个 选 项 的 控件 ( 5) RadioButton 则 是 仅可 以 选 择 一 个选 项 的 控 件 , RadioGroup 是 RadioButton 的 承 载体 , 程 序 运 行时 不 可 见 , 应用 程 序 中 可 能包 含 一 个 或 多个 RadioGroup, 一个 RadioGroup 包 含 多个 RadioButton,在 每 个 RadioGroup 中 ,用 户 仅能 够 选 择 其 中一 个 RadioButton ( 6) Spinner 是 一 种 能 够 从 多 个 选 项 中 选 一 选 项 的 控 件 , 类 似 于 桌 面 程 序 的 组 合 框 ( ComboBox), 但 没有 组 合 框 的 下拉 菜 单 , 而 是使 用 浮 动 菜 单为 用 户 提 供 选择 4.2 菜单 菜 单 是 应 用 程 序 中 非 常 重 要 的 组 成 部 分 , 能 够 在 不 占 用 界 面 空 间 的 前 提 下 , 为 应 用 程 序提 供 了 统 一 的功 能 和 设 置 界面 , 并 为 程 序开 发 人 员 提 供了 易 于 使 用 的编 程 接 口 Android 系 统 支持 三 种 菜 单 选 项 菜单(Option Menu):选 项 菜单 是 一 种 经 常被 使 用 的 Android 系 统 菜单 ;打 开 方 式 : 通 过 “菜 单 键 ”( MENU key) 打 开 ; 选 项 菜 单 分 为 图 标 菜 单 ( Icon Menu) 和 扩 展菜 单 ( Expanded Menu) 子 菜 单(Submenu):子 菜 单是 能 够 显 示 更加 详 细 信 息 的菜 单 子 项,菜 单 子项 使 用 了 浮 动窗 体 的 显 示 形式 ,能 够 更好 适 应 小 屏 幕的 显 示 方 式 。Android 系 统 的子 菜 单 使 用 非 常灵 活 ,可 以 在选 项 菜 单 或 快捷 菜 单 中 使 用子 菜 单 ,有 利 于将 相 同 或 相 似的 菜 单 子 项 组 织 在 一 起 , 便 于 显 示 和 分 类 ; 子 菜 单 不 支 持 嵌 套 ; 子 菜 单 的 添 加 是 使 用 addSubMenu()函 数 实现 快 捷 菜 单 ( Context Menu): 快 捷 菜 单 同 样 采用 了 动 窗 体 的 显 示 方 式 , 与 子 菜单 的 实 现方 式 相 同 ,但 两 种菜 单 的 启 动 方式 却 截 然 不 同 。启 动 方式 :快 捷 菜单 类 似 于 普 通 桌 面程 序 中 的 “右 键 菜单 ”,当 用 户点 击 界 面 元 素超 过 2 秒 后 ,将 启 动注 册 到 该 界 面 元 素 的 快 捷 菜 单 。 使 用 方 法 : 与 使 用 选 项 菜 单 的 方 法 非 常 相 似 , 需 要 重 载 onCreateContextMenu()函 数 和 onContextItemSelected()函 数 5.设计与实现 项 目 共有 2 个 界 面,WeatherActivity 和 SplashActivity,以 及 4 个 类:GetWeather, WeatherApplication, WeatherHandler 和 WeatherInfo 5.1 程序启动界面 SplashActivity 用 于 程 序 启 动 时 的 等 待 界 面 , 在 程 序 完 全 启 动 前 显 示 等 待 画 面 , 直 至 程 序启 动 完 毕 2
图 5-1 程 序 启动 等 待 画 面 5.2 获取天气信息 在 GetWeather 中 , 通过 google weather api 获 取 天气 数 据 public void reGetWeatherToApplication(String location) { Log.v(TAG, "location = " + location); SAXFactory = SAXParserFactory.newInstance(); handler = new WeatherHandler(); try { parser = SAXFactory.newSAXParser(); xmlReader = parser.getXMLReader(); xmlReader.setContentHandler(handler); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block 3
e.printStackTrace(); } catch (SAXException e) // TODO Auto-generated catch block e.printStackTrace(); { } try { url = new URL("http://www.google.com/ig/api?weather=" + location); InputStream inst = url.openStream(); ins = new InputStreamReader(inst, "GB2312"); is = new InputSource(ins); } catch (MalformedURLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) // TODO Auto-generated catch block e.printStackTrace(); { } try { xmlReader.parse(is); weatherInfos = handler.getLinkedList(); // printAllInfos(); } catch (IOException e) { // TODO Auto-generated catch block 4
e.printStackTrace(); } catch (SAXException e) { } // TODO Auto-generated catch block e.printStackTrace(); Application app = (WeatherApplication)(context.getApplication()); ((WeatherApplication) app).setWeatherInfos(weatherInfos); } 5.3 设置并保存天气信息 WeatherHandler 使 用 SAX 解 析 文 档 , 创 建 天 气 预 报 数 据 集 , 设 置 并 保 存 天 气 信 息 。 WeatherInfo.java 用 于 存 储 WeatherHandler 类 获 得 的 天 气 情 况 , 并 提 供 get 方 法 , 用 于 读 出 某个 数 据 以 下 代码 用 于 WeatherHandler 中 设 置天 气 信 息 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { /* 若在current_conditions标签内,创建当前天气信息对象 */ if(localName.equals("current_conditions")) { } weatherInfo = new WeatherInfo(); weatherInfo.setCurrent(true); Log.v(TAG, "localName = " + localName); /* 若在forecast_conditions标签内,新增预报天气信息对象 */ else if(localName.equals("forecast_conditions")) { } weatherInfo = new WeatherInfo(); weatherInfo.setCurrent(false); Log.v(TAG, "localName = " + localName); /* 设置天气状况信息 */ else if(localName.equals("condition")) { 5
分享到:
收藏