ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:292.10KB ,
资源ID:9061068      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9061068.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(google weather API and XML.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

google weather API and XML.docx

1、google weather API and XML目标:你将学到如何通过SAXParser类解析调用 Google Weather API接口返回的XML结果环境:SDK1.1内容:调用Google Weather API通过WEB下载数据通过SAXParser 解析XML文件(数据流)创建自定义界面(继承LinearLayout)难度:3.5/5笔者用2小时写代码,其中半个小时是用于xml-layout,这再次显示了Android-Platform平台的强大和灵活问题/疑难:结果:Screenshot taken with SDK-version m3: 描述:在这个教程中,我们将使用Go

2、ogle (iGoogle) Weather API,我们将简单地调用如下样式的URL引用:/ Style: / Working Examples ( Note: that (space) has to be replaced with its html-expression %20 / Your browser manages that conversion automatically ) 这里使用google weather API三种调用方法中的第三种,使用城市名称法扩展说明:(译者)Google Weather API调用说明1.邮政编码法:(支持美国地区) (94043 为 山景城,

3、 美国加州 的邮政编码) 2.经纬度坐标作法: (30670000,104019996 为 成都, 中国大陆 的经纬度坐标)3.城市名称法:当查询的城市能找到时,返回的数据样式如下:XML: 如果你访问的城市不存在时,例如:它将返回一个提示错误的XML,格式如下:XML: 1)由于我们需要解析返回的XML信息,因此我们需要选择一个XML解析工具(XML-parse)我(原作者)决定选择使用SAX-Parser,SAX是因简单易用的XML-API而著称.所以它正合适我们使用。(注:参看相关资料)通过解析转换,它可以把weather api返回的XML数据转成如下的对象:Java:public c

4、lass WeatherSet / = / Fields / = private WeatherCurrentCondition myCurrentCondition = null; private ArrayList myForecastConditions = new ArrayList(4); / = / Getter & Setter / = / Getter & Setter for fields above. 它包括了两个子成员:WeatherCurrentCondition,WeatherForecastInfoSetWeatherCurrentCondition:包含了XML数

5、据中current_conditions节点的标签。WeatherForecastInfoSet :包含了XML数据中forecast_conditions节点的标签。关于XML解析部分就在这里结束了,其它信息可以看实际代码。2)让我们看一下它的布局,这个布局相对以前我们做的来说会更复杂些。下面是它的关系我使用如些多的tablelayouts,是因为tablelayout能更容易伸展它的子视窗。使用小图标表示天气,使用文本显示温度,他们共同组成自定义视图(SingleWeatherInfoView),它继承于LinearLayout,如下图通过继承LinearLayout,我们得到设置andr

6、oid:orientation-Attribute to =horizontal 或是vertical的属性。你可以出图片的功能,在视图中心的图片SingleWeatherInfoView是当天的天气。在这下面的四个图片SingleWeatherInfoView依次显示的是之后四天的天气。在此又一次的显示了面向对象编程的是最好的。如何创建自定义视图,可以查看实际代码。3)到此90%的工作已经完成,最后的事情是把他们组合起来,我们使用提交按钮的OnClickListener监听事件,当点击后,发生如下事情: 从输入框中取出用户所输入的数据当成调成google weather api 创建一个SA

7、XParser的XML解析对象,解析调用google weather api后返回的数据 显示天气预报信息,包括当天和之后四天的天气。添加如下代码:And this is the corresponding code: Java: Button cmd_submit = (Button)findViewById(R.id.cmd_submit); cmd_submit.setOnClickListener(new OnClickListener() Override public void onClick(View arg0) URL url; try /* Get what user typ

8、ed to the EditText. */ String cityParamString = (EditText)findViewById(R.id.edit_input) .getText().toString(); String queryString = + cityParamString; /* Replace blanks with HTML-Equivalent. */ url = new URL(queryString.replace( , %20); /* Get a SAXParser from the SAXPArserFactory. */ SAXParserFacto

9、ry spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); /* Get the XMLReader of the SAXParser we created. */ XMLReader xr = sp.getXMLReader(); /* Create a new ContentHandler and apply it to the XML-Reader*/ GoogleWeatherHandler gwh = new GoogleWeatherHandler(); xr.setContentHandl

10、er(gwh); /* Parse the xml-data our URL-call returned. */ xr.parse(new InputSource(url.openStream(); /* Our Handler now provides the parsed weather-data to us. */ WeatherSet ws = gwh.getWeatherSet(); /* Update the SingleWeatherInfoView with the parsed data. */ updateWeatherInfoView(R.id.weather_today

11、, ws.getWeatherCurrentCondition(); updateWeatherInfoView(R.id.weather_1, ws.getWeatherForecastConditions().get(0); updateWeatherInfoView(R.id.weather_2, ws.getWeatherForecastConditions().get(1); updateWeatherInfoView(R.id.weather_3, ws.getWeatherForecastConditions().get(2); updateWeatherInfoView(R.i

12、d.weather_4, ws.getWeatherForecastConditions().get(3); catch (Exception e) resetWeatherInfoViews(); Log.e(DEBUG_TAG, WeatherQueryError, e); );如何显示网络图片?通过IE访问:SingleWeatherInfoView类中setWeatherIcon新建工程把下面代码加入工程private ImageView myWeatherImageView = null; Override public void onCreate(Bundle savedInsta

13、nceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); myWeatherImageView = (ImageView)findViewById(R.id.webimg); this.myWeatherImageView.setPadding(10, 5, 5, 5); URL url; try url = new URL( setWeatherIcon(url); catch (MalformedURLException e) / TODO Auto-generated catch block

14、e.printStackTrace(); public void setWeatherIcon(URL aURL) try URLConnection conn = aURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); Bitmap bm = BitmapFactory.decodeStream(bis); bis.close(); is.close(); this.myWeathe

15、rImageView.setImageBitmap(bm); catch(Exception e) 在main.xml中添加:注意:在AndroidManifest.xml文中添加才能访问网络.运行显示:工程结构:WeatherForecast : 视图,程序主入口GoogleWeatherHandler : google weather 处理器,主要是解析XML文件WeatherSet : 是XML标签集,其中包括成员WeatherCurrentCondition,WeatherForecastConditionSingleWeatherInfoView : 以下视图关于译者: 向上是一名C

16、语言开发人员,现从事MTK手机开发,有三年C+,C终端开发经验。现看好android将来的发展,加到机器人大家庭,努力学习,为社区贡献力量。坚持向上人生路。参考资料:http:/www.anddev.org/android_weather_forecast_-_google_weather_api_-_full_source-t361.html从mapbar地图中取出来的按“城市名字,经度,纬度,附:全国城市名字,经度,纬度全国,105.99841,39.00865,北京市,116.38689,39.90578,天津市,117.20264,39.15079,塘 沽,117.66769,39.0

17、3314,大港区,117.42982,38.84287,上海市,121.45611,31.21475,重庆 市,106.52435,29.52496,广东省,113.24316,23.13135,广州市,113.24316,23.13135,清远 市,113.02238,23.71833,佛山市,113.0961,23.02553,深圳市,114.10638,22.55189,湛江 市,110.39712,21.19755,肇庆市,112.46474,23.07627,中山市,113.36877,22.5251,东莞 市,113.74772,23.04402,韶关市,113.60937,24.81176,汕头市,116.68011,23.35566,顺德 市,113.26533,22.81713,珠海市,113.54457,22.245

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1