现在很多智能手机上都有实现天气预报这个功能,基本上是出门必备看的一个小程序,那么我们是怎么实现这个小程序的呢,那么本文来讲讲在Android系统上的天气预报的小程序。

研究《精通Android 3》书有一个月,对于所看过的知识点不是掌握的很好,所以想找个项目来练手,想到就去做,在eoeAndroid的开发社区找到了Android天气预报小程序,就把它下载了下来。首先,将项目的源代码导入到EcliPSe里面,我使用的模拟器的版本是Android 2.3.3的,点击运行出现在我们眼前的是一个欢迎界面,如图所示:

欢迎界面

接着就进入到主界面,如图所示:

主界面

体验了一番之后,从感观上知道程序是采用什么方式布局的,猜测程序的各个控件具备些什么功能,并且是通过什么方法去实现它的。接着开始分析程序的源代码,在分析源代码的过程中,有不懂的我就google或者bing,基本的思路有了,就开始动手做这个天气预报的小程序。

首先,将“欢迎界面”的Activity截图下来,使用“画图”工具打开,在右侧写出“欢迎界面”Activity的实现步骤,接着,将“主界面”的Activity也截图下来,使用“画图”工具打开,与“欢迎界面”的Activity一样,将实现的步骤写出来,最后,将Eclipse项目中的每个包中的类都展开(如图所示),截图后用“画图”工具打开,将每个类需要做的哪些事情用文字描述出来,关于以上提到的三个截图,要做到分析的越详细越好,这样有便于开发。

包的命名以及类的命名

在开始写这个程序之前,要确保准备工作是否做好了,如果觉得哪一块还是不太懂的话,还是再把源代码拿出来研究一番,直到搞懂为止。扯远点,这样有利于在这个程序的基础上附加些自己想要的功能。

现在,可以动手写Android天气预报小程序了,以下是我对编写这个程序的理解!

LoadUI.java需要做的事情有:

1.加载进度条,代码如下:

GIFView类,该类中的调用了GIFDecode类中的方法,对于GIFDecode类的理解不是很透彻,我是使用另外一种方法解决“欢迎界面”Activity的进度条加载方法,没有使用到GIFDecode类,但是,加载进度条的效果非常的逊色。以下代码是放在GIFView类中的。

2.使用Intent加载天气预报数据的服务,代码如下:

LoadDataService类是用于加载天气预报数据的服务类,这个类需要做以下几件事情:

2.1.将当前城市的解码为UTF-8,代码如下:

例如:输入“南昌”,它会将“南昌”解码成%E5%8D%97%E6%98%8C,为什么需要将城市解码为UTF-8,可以用浏览器测试,当在我浏览器中输入

时,它会显示南昌的天气,当我在浏览器中输入

=南昌,出现错误。除了利用解码的方式,还有一种方法,输入城市的拼音,像

2.2.通过将城市解码成UTF-8编码后,就可以开始解析

=“解码后的城市名”网站的XML,解析工作交给XmlParse类,这个类需要去扩展DefaultHandler,并且需要重写startElement()和endElement()两个方法。

2.3.通过google上的天气图标名称如:来与本地图片的Map中的键是否包含,如果包含,通过该键,得到本地图片的资源,本地图片的资源就是值。实现如下,以下代码还判断了白天与晚上显示的天气图片是不一样的:

对于LoadDataService类的讲解到此为止,现在还是继续讲解LoadUI.java需要做的事情。

3.启动“主界面”Activity。

到这里Android天气小程序已经完成了,代码与步骤也是非常简单的,看到这里,你有没有完成这个小程序呢,还是现在已经手痒痒的也要行动起来?那么现在就GET起来吧。

android更新天气简单方法,简单教你如何编写Android天气预报小程序相关推荐

  1. 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)

    作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支持 ...

  2. 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)

    作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎  校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支 ...

  3. android超频使用方法,如何通过超频提升Android平板电脑速度

    通过超频提升Android平板电脑速度方法: 1.用SetCPU软件进行超频 要对Android平板电脑的CPU进行超频,需选择一款对路的软件.这里以SetCPU软件为例,其可将Android平板电脑 ...

  4. git上传代码简单方法 简单git上传代码工具

    简单git上传代码工具 肯定有很多人和我一样,git上传时候搞不懂拉取,合并等一系列的代码冲突问题,往往可能覆盖掉自己今天写的代码,或者覆盖掉别人的代码. 下面给大家简单介绍一款操作比较简单的上传代码 ...

  5. android 更新apk 应用为安装,应用未安装!从Android Studio构建安装APK时出错 - java

    通过android studio生成签名的apk后,在安装发布的apk时,手机显示错误: 应用未安装 我在这个应用程式中遇到这个问题.我已经在处理它,并安装了与安装它相同的apk. 我已经尝试过这些: ...

  6. 三星即将完成android更新,三星Galaxy S9系列手机即将推送Android 10操作系统升级

    描述 就在刚刚,@三星GALAXY盖乐世发布微博称,针对于三星Galaxy S9|S9+和Galaxy Note9用户的全新界面及Android 10操作系统测试版体验即将开始. 三星GALAXY盖乐 ...

  7. Vi编辑器的使用方法及用vi编辑器编写一个C程序

    一.Vi编辑器的介绍 Vi编辑器是ubuntu最基本的文本编辑器. 有三种工作模式: 命令模式:键盘接收的任何字符都被当做命令来解释,不会出现在屏幕上. 插入模式:进行文本编辑 末行模式:在屏幕底部显 ...

  8. android更新新应用_如何将应用转移到新的Android设备

    android更新新应用 Ben Stockton 本·斯托克顿 A new Android device means transferring all of your content, includ ...

  9. android 自定义输入法布局,Android自定义输入法使用方法

    Android自定义输入法使用方法 时间:2017-04-21     来源:Android开发学习网 对于Android用户而言,一般都会使用第三方的输入法.可是在输入密码时(尤其是支付相关的密码) ...

最新文章

  1. java数组扩容arraylist,ArrayList--扩容机制
  2. pandas read_csv 出现中文乱码
  3. OSG模拟鼠标事件影响操纵器
  4. Spring security (一)架构框架-Component、Service、Filter分析
  5. Java 蓝桥杯 算法 和为T
  6. Vue2.0 新手入门 — 从环境搭建到发布
  7. srand和rand函数_了解C ++ rand()和srand()函数
  8. java基础 第四章 下(数组)
  9. GD32使用IAR编程详细教程
  10. pm模式 raid_pm8060 raid配置 服务器RAID配置详解 - 硬件设备 - 服务器之家
  11. 电脑外接显示器或ipad分屏
  12. SPSS实战:多因素方差分析(以随机区组设计为例)
  13. 【详细教程·本人亲测】解决win10家庭版系统C:\Users用户名中有中文,更改为英文的问题
  14. pat 乙级 1072. 开学寄语(20)
  15. 1/cos(x)、1/sin(x)的不定积分推导
  16. State Threads 回调终结者(ST线程库)
  17. 针织毛衫的概念及设计
  18. 精通正则表达式的 12 个有用资源
  19. python --- comment
  20. PAT.A1010 Radix

热门文章

  1. 数据结构知识点思维导图(绪论)
  2. 从安装Ubuntu双系统到配置深度学习环境
  3. 一文搞懂字符编码问题,从此告别中文乱码
  4. mysql MDL锁如何解决_Mysql 中的MDL
  5. 【愚公系列】2023年05月 Web渗透测试之权限绕过攻击
  6. 智能座舱指数首发!入榜「TOP10自主品牌OEM」都有谁
  7. 如何在软件开发团队中进行有效沟通
  8. swoft安装--docker版本安装
  9. 5W无线充SOC方案芯片 封装SOP16和SOP8
  10. 后渗透(内网渗透学习笔记)