Android制作天气预报软件 —— 天气查询

这篇具有很好参考价值的文章主要介绍了Android制作天气预报软件 —— 天气查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

天气查询功能包括信息显示和地区选择两个版块,二者均通过调用极速数据的相关接口进行实现。其中,信息显示界面作为软件首页,默认先显示系统设置的地区天气情况,用户可通过地区选择的界面进行修改信息。对于天气信息,受接口调用次数限制,系统设置每24小时更新一次。具体操作流程如下图所示。

天气预报android,android studio

第一节 天气信息显示

该项使用的是极速数据的天气预报接口,利用接口获取指定地区当天信息(设计中显示的是日期、当前温度、最高温、最低温、城市名、星期、风向、天气、更新时间)以及未来四天天气相关情况(设计中显示的是日期、最高温、最低温、天气),之后将获取信息传递给界面进行显示,不同的天气界面会通过变化图标进行表示。

首先,在MainActivity中声明并初始化控件,以便将获取到的天气信息传入界面显示。并设置访问地址url,以便调用API。

(1)信息读取

如图3-1所示,在MainActivity中实现访问网络的内部类。利用AsyncTask可以在处理耗时任务的同时去更新UI的特点,让Getweather对其进行继承从而在该类中可以通过接口实现UI的进度更新,最后将访问结果反馈给UI主线程。代码中实现的是AsyncTask中的onPreExecute()、doInBackground()两个函数,此外,还定义了openConnection()函数。其中,doInBackground()为抽象函数在AsyncTask中必须实现,此处用于在后台将参数地址(params[0])、城市Id(params[1])传递给openConnection并调用其,从而开始查询目标城市信息。

天气预报android,android studio

图 3- 1获取天气信息的内部类Getweather

openConnection()函数代码如图3-2所示,在开发中用的网络请求是标准Java接口HttpURLConnectio中的get请求方式。由于URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号,而从doInBackground()传来的参数中包含汉字,所以首先需要利用URLEncoder.encode()方法进行转码。然后获取连接对象并设置请求方式,连接进行查询之后得到包含天气信息的响应流。再利用BufferedReader类采用readLine()方式将获得的字符输入流(即响应流)转为文本,输出天气信息。

天气预报android,android studio

图 3- 2 openConnection()函数

onPreExecute()函数中,将openConnection()中访问得到的result作为参数传入,此时得到的是JSON数据。首先先将数据转为JSONObject形式。由于JSONObject是一个对象,JSONArray是一个数组,再结合极速数据官方给出的API调用文档可知,获取当天天气信息时,同一天的各天气信息可以看作独立个体,分别存储在“today”中,所以获取当天信息应使用JSONObject,如图3-3所示。

天气预报android,android studio

图 3- 3onPreExecute()函数中获取当天天气信息

而对于未来天气,应先将同一天的所有天气信息作为一个整体看待(即先将所有天气信息按日期进行分类,所属日期相同的天气信息属于同一类),分类之后多个这样的整体储存在“forecast”之中构成数组,最后再分别从各个整体中读取相应信息。所以读取未来天气情况时,应先使用JSONArray让未来几天天气情况以日期为界限进行划分,共同构成一个数组,数组中第1—4个元素分别为未来第1—4天,之后再用JSONObject读取数组中每个元素其中包含的详细天气信息,如图3-4所示。

天气预报android,android studio 

图 3- 4 onPreExecute()函数中获取未来天气信息

完成访问网络的内部类编写之后,在onCreate()中添加图3-5代码开启网络访问活动,自此实现在有默认地点情况下,天气预报信息的查询与传递。

天气预报android,android studio

图 3- 5访问天气信息指令

(2)图标更换

天气情况的显示除了文字方式,设计中还添加了图片方式。以当天天气信息显示情况为例,如图3-6所示,利用switch()语句以获取到的weather(晴、多云等)为判断依据,不同的weather值则执行不同指令,在各指令中会借助setImageResource将对应控件(nowView)的图片进行更换。未来四天天气图标的变化方式与此大致相同。

天气预报android,android studio

图 3- 6天气图标变化文章来源地址https://www.toymoban.com/news/detail-524085.html

到了这里,关于Android制作天气预报软件 —— 天气查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

    目录 摘要 … 1 需求分析 … 2 一、开发背景… 2 二、项目需求分析… 2 总体设计 … 2 一、系统规划… 2 二、系统功能界面… 3 设置预报城市界面:… 3 2.天气显示界面: … 4 3.Widget 桌面小部件界面:… 5 三.设计目标… 6 系统设计 … 6 一、开发及运行环境… 6 二、数据库

    2024年02月08日
    浏览(48)
  • Android Studio 实现天气预报App (简单方便展示内容超多)

    🍅 文章末尾有获取完整项目源码方式 🍅 目录 前言 一、任务介绍 1.1 背景 1.2目的和意义 二、 实现介绍 视频演示 2.1 启动页实现 2.2注册页面实现 2.3 登陆页面实现 2.4 首页实现 2.5 城市管理列表页面实现                三、获取源码         在使用Android Studio开发

    2024年04月24日
    浏览(34)
  • 安卓大作业:使用Android Studio开发天气预报APP(使用sqlite数据库)

    今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中,我们将使用第三方接口获取实时天气数据,并显示在APP界面上。 首先,打开Android Studio并创建一个新的项目。在创建新项目时,我们需要设置项目名称、包名和支持的最低API级别。 为了获取实时天气数据,

    2024年02月08日
    浏览(42)
  • ESP8266获取天气预报信息,并使用CJSON解析天气预报数据

    当前文章介绍如何使用ESP8266和STM32微控制器,搭配OLED显示屏,制作一个能够实时显示天气预报的智能设备。将使用心知天气API来获取天气数据,并使用MQTT协议将数据传递给STM32控制器,最终在OLED显示屏上显示。 心知天气是一家专业的气象数据服务提供商,致力于为全球用户

    2024年02月10日
    浏览(36)
  • 【小项目】微信定时推送天气预报Github项目使用及原理介绍-包含cron、天气预报、常用api...

    一、资料链接 1、github地址 https://github.com/qq1534774766/wx-push 2、教程地址 https://blog.csdn.net/qq15347747/article/details/126521774 3、易客云API(自动发送天气) https://yikeapi.com/account/index 4、apispace-各种接口(名人名言) https://www.apispace.com/console/api?orgId=6356 5、微信公众平台 https://mp.weixin.qq.com/d

    2024年02月02日
    浏览(32)
  • QT实现天气预报

    public:     MainWindow(QWidget* parent = nullptr);     ~MainWindow();    protected: 形成文本菜单来用来右键关闭窗口     void contextMenuEvent(QContextMenuEvent* event); 鼠标被点击之后此事件被调用     void mousePressEvent(QMouseEvent *ev); 移动窗口     void mouseMoveEvent(QMouseEvent* ev);     //重写过滤器方法

    2024年02月12日
    浏览(28)
  • Vue中使用天气预报

    第一步 : 打开这个网站自己设置好想要的样式 和风天气插件 | 和风天气插件产品,免费、跨终端。适配你的网站、APP、公众号 一般选第一个就好 第二步 : 调整好样式 生成你的代码 最后记得点生成 第三步: 创建一个 新的组件(.vue文件) 在里面写入以下的代码 注意事项写

    2024年02月11日
    浏览(33)
  • Java实现天气预报功能

    如果要实现类似百度天气、手机App这样的天气预报功能该如何实现?首先想到的是百度...                                         最近公司做了一个项目,天气预报的功能也做上去了,不仅有实时天气、未来7天预报的功能、还有气象预警的功能。 天气包括基本天气、白

    2024年02月05日
    浏览(73)
  • 微信小程序 - 简易天气预报

    预览图:   1:WXML: 2:WXSS: 3:JS: 4:下载地图包: 不了解的可以通过这个链接查看,其中有关于小程序定位的内容,本章也使用到过:微信小程序获取位置信息_微信小程序获取当前位置_鸢与浅忆的博客-CSDN博客  5:app.json: 和page、window同级 该项目使用的接口为nowapi平台提

    2024年02月06日
    浏览(72)
  • 微信小程序天气预报实战

    api接口用的和风天气 代码如下 // pages/weather/weather.js Page({   /**    * 页面的初始数据    */   data: {     apiKey: \\\"1f5e75b8a3f0472aaf2f618268b30b4e\\\",     City: \\\'\\\',     Country:\\\'\\\',     locationid:\\\"\\\",     latlongFlag: false   },   /**    * 生命周期函数--监听页面加载    */   onL

    2024年02月19日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包