广州APP开发

18929569550
13609727171
您的当前位置:主页 > 新闻动态

天气预报APP的设计

时间: 2020-01-15

在智能时代的今天,天气预报软件作为生活中最常见的应用软件,给人们提供的便利的服务,随时随地的提供天气信息,让很多人避免了突如其来的天气变化带来的困扰,目前许多的天气预报软件有很多的插件、广告之类的服务,这些应用软件都是偏商业性的,严重影响用户的体验,所以设计一个简单的天气信息查询软件是很有必要的。


1、项目设计


开发一款应用程序就应该有一个平台。Java就为安卓提供了这样的一个平台—Android虚拟机。安卓虚拟机是Java编译器JVM优化而来的,性能方面也有一定的提升,安卓虚拟机的内存是基于寄存器的,在内存中有多个独立的进程,其进程的独立性能够避免安卓虚拟机停止时程序的崩溃。该项目采用MVC的开发模式,将应用程序的数据层、控制层、视图层划分开。它们各自的分工不同,数据层:具体的是数据的获取以及处理,视图层:用户能直接看到的界面,控制层则是将数据层与视图层相关联起来。


2、 具体设计与实现


(1) UI界面的实现


首先对其网络类型的判断,判断是否开启网络连接,从而减少流量浪费的现象出现。网络检测之后则是适配相应的天气信息,而天气信息如何得来,这就涉及到网络编程,网络请求数据根据URL进行访问,返回的数据是一种JSON格式数据,将得到的天气信息解析出来,将其数据封装成一个实体类WeatherBean。


默认城市界面主要引用第三方的slidingmenu开源jar包,引用第三方的jar包极大地减少了代码量,界面可以直接点击主界面的任意位置滑动拖出,也能通过标题栏侧的Button按钮弹出,默认城市有北京、上海、广州等城市,点击默认的城市也能进行相应的天气查询,侧滑菜单的函数为initialMenu(),在该方法中主要是对其属性的设置,设置侧滑属性为左侧滑出,同时为其侧滑菜单界面添加触摸事件。当用户再次点击侧滑菜单界面时,该界面自动收回。


天气预报的最关键的是需要实时更新天气信息,这样才能确保信息的准确性,在该应用程序中采用下拉刷新,重新加载天气信息即下拉后再次发送网络请求,从而实现实时更新天气功能。


 天气app设计.jpg

图1 系统流程图


(2) 定位


在天气查询软件应用程序中共两处用到定位功能,一处是当用户下拉刷新天气信息时,此时对当前设备进行定位,另外一处则是当用户进入查询界面时,需对当前城市进行定位,当我们得到百度地图的密钥后,该应用程序就有了使用百度地图的权限,在LocationCity类中声明LocationClient类,新建Location ClientOption对象,为其设置相应的属性,在LocationClient类中还需注册相应的监听函数。


最后在应用程序中调用showLocation()方法就能为其定位,这样就能获得当前用户所处的城市。

天气app设计2.jpg

(3) 程序优化


未来一周的天气信息以listview的形式展示出来,listview是安卓开发中最常见的UI控件之一,在使用的过程中会发现其优化问题,因为listview会消耗部分资源,导致系统不流畅,这样会影响用户的体验。因此必须对listview进行优化。


优化其性能的方法是在listview适配器中新建静态的ViewHolder类,将其定义的变量封装到ViewHolder类中。为ViewHolder类定义一个变量,以便后续步骤调用ViewHolder类的属性,首先判断convertView是否为空,若为空则new ViewHolder()对象,根据查找其R文件下的对应的id来查找控件,查找一次就能将所有的控件缓存在ViewHolder中,这样就极大地减少了查找控件的次数,因为在查找控件时是相当耗时的,若convertView不为空,则直接调用getTag()方法即可。


3、测试


在程序编写完成后对程序进行调试,所有界面均能正常显示,且数据正常准确,测试成功,到此整个项目开发完成,为整个程序打包签名便生成一个APK文件,将其安装到移动设备上就可以使用了。


以上文章内容由广州知名的app开发公司-德菁科技提供,原创不易,转载请声明!