• 基于Android的天气预报系统的设计和实现


    目录

    摘要 … 1
    需求分析 … 2
    一、开发背景… 2
    二、项目需求分析… 2
    总体设计 … 2
    一、系统规划… 2
    二、系统功能界面… 3

    1. 设置预报城市界面:… 3
      2.天气显示界面: … 4
      3.Widget 桌面小部件界面:… 5
      三.设计目标… 6
      系统设计 … 6
      一、开发及运行环境… 6
      二、数据库设计… 6
      三、主要方法及步骤… 7
      四、主要方法及技术… 7
      主要模块 … 7
      一、项目框架… 7
      二、主要功能实现… 8
      1.获取城市码 db_weather.db 数据库文件… 8
      2.实现可伸缩性列表的的构建与过滤 … 12
      3.GPS 定位功能的实现 … 15
      4.Widget 窗体小部件的更新 … 18
      功能测试 … 19
      结论 … 23
      在 Google 和 Android 手机联盟
      的共同推动下,Android 在众多移动应用开发平台中脱颖而出。Android 是一个
      真正意义上的开源智能手机操作系统,该系统一经推出立即受到全球移动设备厂
      商和开发者的热捧。为顺应潮流,本设计旨在搭载 Android 的移动设备上运行,
      实现天气状况的实时动态更新与显示,方便人们的出行与生活。

    二、项目需求分析
    根据功能的需求,分析此项目的主要功能应具备以下几点:

    1. 精确查询定位全国各地城市未来几天内的实时天气状况
    2. 系统要具的实用性,符合用户查看信息习惯,界面设计优美
    3. 系统要具有稳定性,且在一定程度上节省流量的开销
      总体设计
      一、系统规划
      由上述的需求,现将系统分为三大模块:天气显示界面模块、预报城市设置
      模块与 Widget 桌面小部件模块。各系统模块功能如下:
      1). 天气显示界面模块
      显示指定城市三天内的天气状况,包括日期、城市名称、温度、风力与当
      日的建议,用户可通过按菜单键来显示菜单更新当前天气与设置天气显示的界面
      背景,以及跳转至设置预报城市界面来更换预报城市。
      2). 预报城市设置模块
      由自动设置预报城市与手动设置二部分组成,自动设置实现 GPS 定位功
      能,自动确定当前用户所在地;而手动设置则通过可伸展性下拉列表单击选择系
      统数据库中预存的城市来进行设置,同时为了方便用户查找,支持以输入框的形
      式来过滤查询预报城市。当单击选中城市时跳转至天气显示界面,来显示该城市
      当三天内的天气状况;第一次运行时自动跳到该界面。
      3). Widget 桌面小部件模块
      为了方便用户实时了解天气状况,特别添加在 Android 系统桌面上显示
      当前天气与时间的天气小部件,使用户拿起手机的第一时刻就能了解天气,同时
      当用户单击小部件时,自动跳转至天气显示界面,显示三天内的详细天气。
    //根据经纬度得到详细的地址信息
    //定义的一个网络访问工具类
    WebAccessTools webTools = new WebAccessTools(this);
    String addressContext = webTools.getWebContent
    ("http://maps.google.cn/maps/geo?output=xml&q="+
    latitude+","+longitude);
    //解析地址信息
    SAXParserFactory spf = SAXParserFactory.newInstance();
    try {
    SAXParser parser = spf.newSAXParser();
    XMLReader reader = parser.getXMLReader();
    LocationXMLParser handler = new LocationXMLParser();
    reader.setContentHandler(handler);
    StringReader read = new StringReader(addressContext);
    // 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
    InputSource source = new InputSource(read);
    //开始解析
    reader.parse(source);
    //判断是否存在地址
    if(handler.hasAddress())
    return handler.getDetailAddress();
    } catch (Exception e) {
    e.printStackTrace();
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    docker学习笔记(3)- 镜像
    重排链表(leetcode)
    黑洞路由的几种应用场景
    (五)关系数据库标准语言SQL
    关于mac上如何U盘
    Linux关闭进程
    LIO-SAM框架:点云匹配前戏之初值计算及局部地图构建
    【推荐系统】推荐系统-基础算法 基于社交网络的算法
    Elasticsearch head 连接 阿里云ES
    API 网关的功能
  • 原文地址:https://blog.csdn.net/newlw/article/details/128189350