android调用在线天气服务,android通过google api获取天气信息示例
android通过google API获取天气信息
复制代码 代码如下:
public class WeatherActivity extends Activity {
private TextView txCity;
private Button btnSearch;
private Handler weatherhandler;
private Dialog progressDialog;
private Timer timer;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
timer = new Timer();
txCity = (TextView)findViewById(R.id.txCity);
btnSearch = (Button)findViewById(R.id.btnSearch);
progressDialog = new AlertDialog.Builder(this)
.setTitle("读取数据中")
.setMessage("正在加载数据,请稍等")
.create();
weatherhandler = new Handler(){
public void handleMessage(Message msg){
final String cityName = txCity.getText().toString().trim();
searchWeather(cityName);
progressDialog.hide();
}
};
btnSearch.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
progressDialog.show();
timer.schedule(new TimerTask() {
@Override
public void run() {
Message msg = new Message();
msg.setTarget(weatherhandler);
msg.sendToTarget();
}
},100);
}
});
}
private void searchWeather(String city){
SAXParserFactory spf = SAXParserFactory.newInstance();
try {
SAXParser sp = spf.newSAXParser();
XMLReader reader = sp.getXMLReader();
XmlHandler handler = new XmlHandler();
reader.setContentHandler(handler);
URL url = new URL("http://www.google.com/ig/api?hl=zh-cn&weather="+URLEncoder.encode(city));
InputStream is = url.openStream();
InputStreamReader isr = new InputStreamReader(is, "GBK");
InputSource source = new InputSource(isr);
reader.parse(source);
ListweatherList = handler.getWeatherList();
TableLayout table = (TableLayout)findViewById(R.id.table);
table.removeAllViews();
for(Weather weather:weatherList){
TableRow row = new TableRow(this);
row.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
row.setGravity(Gravity.CENTER_VERTICAL);
ImageView img = new ImageView(this);
img.setImageDrawable(loadImage(weather.getImageUrl()));
img.setMinimumHeight(80);
row.addView(img);
TextView day = new TextView(this);
day.setText(weather.getDay());
day.setGravity(Gravity.CENTER_HORIZONTAL);
row.addView(day);
TextView temp = new TextView(this);
temp.setText(weather.getLowTemp()+"℃-"+weather.getHighTemp()+"℃");
temp.setGravity(Gravity.CENTER_HORIZONTAL);
row.addView(temp);
TextView condition = new TextView(this);
condition.setText(weather.getCondition());
condition.setGravity(Gravity.CENTER_HORIZONTAL);
row.addView(condition);
table.addView(row);
}
} catch (Exception e) {
e.printStackTrace();
new AlertDialog.Builder(this)
.setTitle("解析错误")
.setMessage("获取天气数据失败,请稍候再试。")
.setNegativeButton("确定", null)
.show();
}
}
private Drawable loadImage(String imageUrl) {
try {
return Drawable.createFromStream((InputStream) new URL("http://www.google.com/"+imageUrl).getContent(), "test");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
android调用在线天气服务,android通过google api获取天气信息示例相关推荐
- android自动获取天气,android通过google api获取天气信息示例
android通过google API获取天气信息 public class WeatherActivity extends Activity { private TextView txCity; p ...
- python 获取天气_Python实现从百度API获取天气的方法
本文实例讲述了Python实现从百度API获取天气的方法.分享给大家供大家参考.具体实现方法如下: __author__ = 'saint' import os import urllib.reque ...
- Android开发:基于原生API获取位置信息、卫星信号个数及参与定位的卫星个数
目录 概述 权限申请及开启GPS 调用原生API进行定位 获取设备收到的卫星信号个数 获取用于定位的卫星信号个数 成果图 概述 最近在做室内外无缝定位的相关demo,室外定位中,GNSS定位方法具有精 ...
- (更新源码)AndroidStudio新手开发:天气app(百度地图api+和风天气api+城市查询+折线展示)
AndroidStudio新手开发:天气app(百度地图api+和风天气api+城市查询+折线展示) 1.内容简介 2.环境配置 3.导入他人demo 4.AS项目分析 5.天气项目流程 6.数据探寻 ...
- 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)
之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...
- 4月12日云栖精选夜读:用Google API 提取名片信息
平时收到的名片太多,想一一整理却又没时间这么办?赶紧点击<用Google API 提取名片信息>这篇文章吧,看看作者是如何简简单单用手机给名片拍个照就搞定的,剩下工作的交给Google A ...
- 渗透工具ldapsearch-ad:Python3 脚本通过LDAP服务快速从域控制器获取各种信息。
Git地址: yaap7/ldapsearch-ad:Python3 脚本,用于通过他的 LDAP 服务从域控制器快速获取各种信息. (github.com) ldapsearch-ad.py Pyt ...
- android如何开发ui服务,Android UI-对Activity工作流程的理解(一)
概述 在android studio创建一个新项目的时候,或者初学者在刚踏入android开发的时候,都会在首先创建一个MainActivity.根据一般的理解,Activity的就相当于一个界面的入 ...
- Android中基于心知天气API获取天气信息
Android中基于心知天气获取天气信息 JSON JSON简介 JSON对象 JSON数组 JSON解析 Android中获取天气 获取天气的流程 获取心知天气的API key 获取心知天气的API ...
最新文章
- Fisheye camera
- SSM项目的数据库密码加密方案
- Android启动模式详解
- iOS UIView成像流程
- flex布局实现叠在另一个div之上_如何让一个div在另一个div的上面,求高手指点...
- Spring Security——简单第三方OAuth2登录自动配置——GitHub登录DEMO
- javascript与xml实例应用
- python 删除特定行数据_怎么用 Python 做数据分析实例
- 数据库每日一题 2020.05.07
- GaussDB(for openGauss)让数据“存得下、算得快、算得准”
- freecplus框架-PostgreSQL数据库操作
- ASimpleCache使用感受
- mysql-front5.1的注册码
- is 32-bit instead of 64-bit 亲测可用
- 在线编辑器,富文本编辑器
- iconfont阿里矢量图标库的引入与使用
- ASP.NET通用房屋租赁管理系统源码
- matlab coder分析
- 常用软件国内源镜像地址大全
- 《孙子兵法》的逻辑结构
热门文章
- java实现在线预览功能(支持xlx,word,ppt,dwg等格式转Pdf)
- 小龙虾的做法大全 你想知道的做法全部安排上
- 2018面试总结(阿里巴巴蚂蚁金服、饿了么、人人车等)
- 【车载】ABS/BAS/BA防抱死制动系统
- 2018年天源迪亚杯博弈赛后的感受
- 王者荣耀服务器维护8月23日,王者荣耀8月23日更新公告:其它系统优化及BUG修复...
- 赋能 打造应对不确定性的敏捷团队 pdf_赋能——打造应对不确定的敏捷团队|《赋能》斯坦利...
- 捷信总经理Ondrej:愿为中欧企业间的长远发展与互惠共赢而努力
- PS快速抠图、换背景,让抠图速度快…
- 十种获取被动收入的方法