android怎样使用天气预报接口 实现天气预报

android怎样使用天气预报接口 实现天气预报,第1张

使用搜索引擎可以得到很多的天气预报接口,这里以某个api为例

>

参数为city=城市名称

尝试获取南昌的天气预报

>

得到下面xml数据

<xml version="10" encoding="utf-8">
<resp>
  <city>南昌</city>
  <updatetime>16:55</updatetime>
  <wendu>5</wendu>
  <fengli>3级</fengli>
  <shidu>90%</shidu>
  <fengxiang>北风</fengxiang>
  <sunrise_1>06:54</sunrise_1>
  <sunset_1>17:19</sunset_1>
  <sunrise_2/>
  <sunset_2/>
  <environment>
    <aqi>26</aqi>
    <pm25>13</pm25>
    <suggest>各类人群可自由活动</suggest>
    <quality>优</quality>
    <MajorPollutants/>
    <o3>44</o3>
    <co>1</co>
    <pm10>14</pm10>
    <so2>4</so2>
    <no2>27</no2>
    <time>16:00:00</time>
  </environment>
  <yesterday>
    <date_1>4日星期五</date_1>
    <high_1>高温 11℃</high_1>
    <low_1>低温 7℃</low_1>
    <day_1>
      <type_1>阴</type_1>
      <fx_1>无持续风向</fx_1>
      <fl_1>微风</fl_1>
    </day_1>
    <night_1>
      <type_1>小到中雨</type_1>
      <fx_1>北风</fx_1>
      <fl_1>3-4级</fl_1>
    </night_1>
  </yesterday>
  <forecast>
    <weather>
      <date>5日星期六</date>
      <high>高温 7℃</high>
      <low>低温 5℃</low>
      <day>
        <type>中到大雨</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </day>
      <night>
        <type>小到中雨</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </night>
    </weather>
    <weather>
      <date>6日星期天</date>
      <high>高温 10℃</high>
      <low>低温 5℃</low>
      <day>
        <type>阴</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </day>
      <night>
        <type>多云</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </night>
    </weather>
    <weather>
      <date>7日星期一</date>
      <high>高温 13℃</high>
      <low>低温 6℃</low>
      <day>
        <type>多云</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </day>
      <night>
        <type>晴</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </night>
    </weather>
    <weather>
      <date>8日星期二</date>
      <high>高温 13℃</high>
      <low>低温 7℃</low>
      <day>
        <type>晴</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </day>
      <night>
        <type>多云</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </night>
    </weather>
    <weather>
      <date>9日星期三</date>
      <high>高温 13℃</high>
      <low>低温 10℃</low>
      <day>
        <type>小雨</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </day>
      <night>
        <type>小雨</type>
        <fengxiang>无持续风向</fengxiang>
        <fengli>微风级</fengli>
      </night>
    </weather>
  </forecast>
  <zhishus>
    <zhishu>
      <name>晨练指数</name>
      <value>不宜</value>
      <detail>有较强降水,请避免户外晨练,建议在室内做适当锻炼,保持身体健康。</detail>
    </zhishu>
    <zhishu>
      <name>舒适度</name>
      <value>较舒适</value>
      <detail>白天有雨,人们会感到有些凉意,但大部分人完全可以接受。</detail>
    </zhishu>
    <zhishu>
      <name>穿衣指数</name>
      <value>较冷</value>
      <detail>建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。</detail>
    </zhishu>
    <zhishu>
      <name>感冒指数</name>
      <value>极易发</value>
      <detail>将有一次强降温过程,天气寒冷,且空气湿度较大,极易发生感冒,请特别注意增加衣服保暖防寒。</detail>
    </zhishu>
    <zhishu>
      <name>晾晒指数</name>
      <value>不宜</value>
      <detail>有较强降水,不适宜晾晒。若需要晾晒,请在室内准备出充足的空间。</detail>
    </zhishu>
    <zhishu>
      <name>旅游指数</name>
      <value>较不宜</value>
      <detail>天气稍凉,有微风,同时有有较强降水,会给出行产生很多麻烦,建议好还是多选择在室内活动!。</detail>
    </zhishu>
    <zhishu>
      <name>紫外线强度</name>
      <value>最弱</value>
      <detail>属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。</detail>
    </zhishu>
    <zhishu>
      <name>洗车指数</name>
      <value>不宜</value>
      <detail>不宜洗车,未来24小时内有雨,如果在此期间洗车,雨水和路上的泥水可能会再次弄脏您的爱车。</detail>
    </zhishu>
    <zhishu>
      <name>运动指数</name>
      <value>较不宜</value>
      <detail>有较强降水,建议您选择在室内进行健身休闲运动。</detail>
    </zhishu>
    <zhishu>
      <name>约会指数</name>
      <value>不适宜</value>
      <detail>较强降水天气会给室外约会增添许多麻烦,尽量不要外出约会,最好在室内促膝谈心。</detail>
    </zhishu>
    <zhishu>
      <name>雨伞指数</name>
      <value>带伞</value>
      <detail>有较强降水,您在外出的时候一定要带雨伞,以免被雨水淋湿。</detail>
    </zhishu>
  </zhishus>
</resp>

得到数据后使用XML解析数据即可,最好是建立一个实体类来存储数据

下面是使用DOM方式解析部分数据代码

DocumentBuilder builder = DocumentBuilderFactorynewInstance()newDocumentBuilder();
//is是网络连接得到的输入流
Document doc = builderparse(is);
if(doc==null) throw new Exception();
Element element = docgetDocumentElement();
NodeList childList = elementgetChildNodes();
for(int i=0; i<childListgetLength(); i++){
Element e = (Element) childListitem(i);
String tag = egetTagName();
String text = egetTextContent();
if("city"equals(tag)){
                //城市
}else if("updatetime"equals(tag)){
//更新时间
}else if("wendu"equals(tag)){
//即时温度
}else if("fengli"equals(tag)){
//风力
}else if("shidu"equals(tag)){
//湿度
}else if("fengxiang"equals(tag)){
//风向
}
}

加入V4兼容包,AndroidManifestxml里设置成:
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="16" />
projectproperties这个文件配置成:target=android-16
这样你开发的程序就可以兼容16——41版本的android手机了

Android 自定义控件或多或少都会用到Canvas,那么我们就需要熟悉它的API。Canvas给我们提供了大量的的DrawXXX方法,通过这些方法我们就可以绘制出我们想要的效果。接下来看看官方是怎么说的:

大致意思就是说:
Canvas类持有“draw”调用。 要绘制一些东西,你需要4个基本组件:一个位图来保存像素,一张画布(Canvas)来主持绘图调用(写入位图),一个绘图图元(如Rect,Path,text,Bitmap)和一支画笔(描述绘图的颜色和样式)。

首先介绍下画笔(Paint)的常用API:

Paint默认的字体大小为12px,在绘制文本时我们往往要考虑密度density设置合适的字体大小。画笔的默认颜色为黑色,默认的style为FILL,默认的cap为BUTT,默认的线宽为0。

单一颜色填充Canvas画布

以上就是大部分的绘制 *** 作,当然还有一些没介绍到,还有一些需要在API21(50)以上才能使用,这个使用到的时候可以弄个小demo看下效果,接下来介绍下针对画布变换和画布裁剪做一些介绍。

在学习绘制 *** 作的时候很多地方都使用到了translate 和rotate 这里就不再对它们进行 *** 作

1画布scale

2画布skew

这里针对Canvas的API进行了一些说明,希望对大家有所帮助。没有添加完整工程上来,但是每一个方法都是实际跑过的,只需要在onDraw中调用就可以看到效果了。

解压android的sdk即 android-sdk-windows-15_r2后,就可以在android-sdk-windows-15_r2的文件夹下看到一个documentationhtml得文件,这就是android api的文档

短信API(短信应用程序接口)其实是一组定义、程序及协议的集合,通过 API 接口实现计算机软件之间的相互通信。API 的一个主要功能是提供通用功能集。程序员通过使用 API 函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。 API 同时也是一种中间件,为各种不同平台提供数据共享。

如果只是隐藏了,不需要特殊权限,你可以在你的APP中建一个包名类名和你要调用的隐藏API的包名类名一样的类,在里边写一个空方法,方法名就是你的API名,将APK安装到系统中后,实际调用的还是系统的API。这种方法称之为API欺骗,具体百度了解吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13377136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存