您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 安卓天气预报实训报告
-1-安卓实训设计报告Android天气预报设计题目:Android天气预报班级:姓名:_学号:_指导老师:日期:2012年6月7日-2-内容要求一、题目分析,功能要求。1.1实验目的熟悉Android软件开发的基本架构利用Eclipse和ADT插件设计贪天气预报1.2功能本软件就是利用现有的网络快速获取网络上的天气信息并显示到手机终端上,为用户提供实时的天气查询和近期天气查询服务,为工作、出行等带来便利。通过WebService等技术让用户体验到前所未有的移动计算。二、实验设计本软件是一个AppWidget应用程序,启动程序后可以进行城市、更新频率的设置,可以通过图片和文字显示当前和未来的天气状况,包括温度、湿度、风向和雨雪情况等。这些天气数据是通过后台服务获取的,这个后台服务可以按照一定的时间间隔,通过Google提供的服务获取天气预报信息,并将天气信息保存在数据库中。该软件的基本功能需求有:(1)启动AppWidget应用程序;(2)设置界面:对要显示天气预报的城市及更新频率进行设置;(3)显示界面:通过文字和图片显示当前的天气情况,包括日期、时间、城市、最高温度、最低温度、当前温度等。(4)详细界面:在显示出“显示界面”上所有信息的同时用列表的形式显示今后四天的天气情况。三、实验程序见附录一。四、实验效果图图五、总结-3-(1)在Android平台上可以通过WebService技术方便的获取互联网上的资源信息,在智能手机强大的硬件功能和快速的移动互联网的支持下,可以更加方便的利用网络上的资源,为生活、工作带来极大的便利。(2)Android语言的开发组件Activity、IntentReceiver、Service、ContentProvider等提供了强大的数据处理功能。合理的设计数据库可以方便的实现各页面、进程之间的数据共享、数据的传递,也会使程序的运行更加稳定。(3)Android系统中的视图组件View和ViewGroup等的灵活使用,可以设计出界面美观,用户操作方便灵活的页面,并可以实现页面各种不同的显示布局以及动画效果等。(4)使用SAX的方式解析android应用程序中的XML数据文件,可以提供很好的性能需求。之所以选择SAX的方式来解析XML文件,是因为它是一种非常优秀的轻量级解决方案。使用android平台的硬件环境主要是手机和其它一些嵌入式设备。这些设备都需要比较快的解析速度和尽可能少的内存占用,同时满足这两方面要求的技术中SAX是一个非常好的选择。附录一布局1.?xmlversion=1.0encoding=utf-8?2.LinearLayoutxmlns:android=/res/android3.android:orientation=vertical4.android:layout_width=fill_parent5.android:layout_height=fill_parent6.7.TextView8.android:id=@+id/tvPlace9.android:layout_width=fill_parent10.android:layout_height=wrap_content11./12.EditText13.android:id=@+id/place14.android:layout_width=fill_parent15.android:layout_height=wrap_content16.android:hint=输入城市名称(汉字或者拼音)17./18.Button-4-19.android:id=@+id/query20.android:layout_width=fill_parent21.android:layout_height=wrap_content22.android:text=查询23./24./LinearLayout将网络图片转换为android的bitmap对象25.package;26.import;27.import;28.import;29.import;30.import;31.import;32.import;33.publicclassUtils{34.publicstaticStringweek(StringenWeek){35.if(enWeek.equals(Mon)||enWeek.equals(Monday))36.return星期一;37.elseif(enWeek.equals(Tue)||enWeek.equals(Tuesday))38.return星期二;39.elseif(enWeek.equals(Wed)||enWeek.equals(Wednesday))40.return星期三;41.elseif(enWeek.equals(Thu)||enWeek.equals(Thursday))42.return星期四;43.elseif(enWeek.equals(Fri)||enWeek.equals(Friday))44.return星期五;45.elseif(enWeek.equals(Sat)||enWeek.equals(Saturday))46.return星期六;47.elseif(enWeek.equals(Sun)||enWeek.equals(Sunday))48.return星期日;49.return;50.}51.publicstaticStringweather(StringenWeather){52.if(enWeather.equals(Clear))53.return晴;54.elseif(enWeather.equals(PartlySunny)55.||enWeather.equals(partly_cloudy))56.return多云;57.elseif(enWeather.equals(ChanceofRain))58.return晴转雨;59.elseif(enWeather.equals(storm))60.return暴雨;61.elseif(enWeather.equals(thunderstorm))-5-62.return雷阵雨;63.elseif(enWeather.equals(fog))64.return大雾;65.elseif(enWeather.equals(haze))66.return有雾;67.elseif(enWeather.equals(rain))68.return雨;69.elseif(enWeather.equals(heavyrain))70.return大雨;71.elseif(enWeather.equals(lightrain))72.return小雨;73.elseif(enWeather.equals(heavyrain))74.return大雨;75.elseif(enWeather.equals(snow))76.return有雪;77.///还需要补充。。。。78.return;79.}80.publicstaticBitmapreturnBitMap(StringimgUrl){81.URLmyImgUrl=null;82.Bitmapbitmap=null;83.try{84.myImgUrl=newURL(imgUrl);85.}catch(MalformedURLExceptione){86.e.printStackTrace();87.}88.try{89.HttpURLConnectionconn=(HttpURLConnection)myImgUrl90..openConnection();91.conn.setDoInput(true);92.conn.connect();93.InputStreamis=conn.getInputStream();94.bitmap=BitmapFactory.decodeStream(is);95.is.close();96.}catch(IOExceptione){97.e.printStackTrace();98.}99.returnbitmap;100.}101.}下面的程序通过Google提供的api来获取天气预报信息1.package;2.import;3.import;-6-4.import;5.import;6.import;7.import;8.import;9.import;10.import;11.import;12.import;13.import;14.import;15.import;16.import;17.import;18.import;19.import;20.import;21.import;22.import;23.import;24.import;25.publicclassWeatherextendsActivity{26.publicEditTextETplace;27.publicTextViewTvPlace;28.publicButtonquery;29.publicTextViewplaceName;30.publicImageViewimView;31./**Calledwhentheactivityisfirstcreated.*/32.@Override33.publicvoidonCreate(BundlesavedInstanceState){34.super.onCreate(savedInstanceState);35.setContentView(;36.ETplace=(EditText)findViewById(;37.query=(Button)findViewById(;38.imView=(ImageView)findViewById(;39.placeName=(TextView)findViewById(;40.query.setOnClickListener(newButton.OnClickListener(){41.publicvoidonClick(Viewv){42.try{43.TvPlace=(TextView)findViewById(;44.Stringplace=CntoEn.getFullSpell(ETplace.getText().toString());45.placeName.setText(place);46.Stringweather=;47.Stringurl=/api?&weather=+place;48.DefaultHttpClientclient=newDefaultHttpClient();49.HttpUriRequestreq=newHttpGet(url);-7-50.HttpResponseresp=client.execute(req);51.//StringstrResult=EntityUtils.toString(resp.getEntity());52.//Log.i(weather-,strResult);53.//一华氏度等于9/5摄氏度数值+3254.HttpEntityent=resp.getEntity();55.InputStreamstream=ent.getContent();56.DocumentBuilderb=DocumentBuilderFactory.newInstance()57..newDocumentBuilder();58.Documentd=b.parse(newInputSource(stream));59.NodeListn=d.getElementsByTagName(forecast_conditions);60.//获得图片url当天的。61.StringimgUrl=;62.imgUrl+=n.item(0).getCh
本文标题:安卓天气预报实训报告
链接地址:https://www.777doc.com/doc-7041110 .html