德必信生活网

您现在的位置是:首页 > 生活资讯 > 正文

生活资讯

天气预报android(天气预报7天)

阿信2022-10-18生活资讯116

Android上的天气预报软件哪个准一点呀? 谢谢

单以预报准确而言,个人最为推荐墨迹天气。一直在用,感觉很好。

1.墨迹天气

墨迹天气是一款以预报准确,覆盖城市广,流量少,界面华丽等为特点的桌面天气软件。

(支持语音播报天气,皮肤资源也非常丰富!)

另外还有几款好的软件,各有所长吧。

2.GO天气

GO天气是一款华丽炫酷的实时天气预报软件,可查看全球主要城市的天气。通过访问美国及全世界数万个地区中的最大的专业天气网,GO天气在任何时间任何地点,都可以获得最精确的天气信息。(Go团队出品,支持高清天气视频,十分华丽!)

3.MIUI天气

一款MIUI开发的天气软件,界面时尚大方美观,功能强大,支持全国城市,支持周边城市天气预报,支持天气提醒,支持污染指数等功能。

(提取自MIUI固件,高清皮肤,天气效果动态显示,给你最华丽的体验!)

4.天气通

天气通是一款免费手机天气预报软件。通过网络获取天气信息,以直观的图文方式显示,详尽的城市目录,支持多个预报网站。桌面图标典雅,天气网标则充满新意。

(功能全面,支持全屏动画,还有独特的日历备注功能!)

5.华丽动态天气

Animated Weather是Android手机上的天气预报应用程序,每日动态天气预报,逼真的动态天气特效,自定义背景,支持世界超过50000个城市的天气预报。

(可自定义背景,支持城市全面!)

希望对你有帮助。

android 如何实现获取天气预报信息?

方法步骤(以安卓5.0为例)

一、打开GPS

二、点主屏的“天气”图标

三、点右上角三个点的图标

四、点“设定”

五、在下图右侧的三个红圈处打上钩,然后点“自动刷新”。

六、根据自己的需要选择自动刷新的时间

七、点“确定”退出

八、可以随时点刷新图标来手动刷新天气。

九、提示

1.适时刷新天气需要开启GPS定位。

2.在没有WIFI的地方刷新天气需要消耗一定的流量,刷新频率越高,消耗流量越多。

android 高德2.10如何获取天气预报啊

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

参数为city=城市名称

尝试获取南昌的天气预报

南昌

得到下面xml数据

?xml version="1.0" encoding="utf-8"?

resp

city南昌/city

updatetime16:55/updatetime

wendu5/wendu

fengli3级/fengli

shidu90%/shidu

fengxiang北风/fengxiang

sunrise_106:54/sunrise_1

sunset_117:19/sunset_1

sunrise_2/

sunset_2/

environment

aqi26/aqi

pm2513/pm25

suggest各类人群可自由活动/suggest

quality优/quality

MajorPollutants/

o344/o3

co1/co

pm1014/pm10

so24/so2

no227/no2

time16:00:00/time

/environment

yesterday

date_14日星期五/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_13-4级/fl_1

/night_1

/yesterday

forecast

weather

date5日星期六/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

date6日星期天/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

date7日星期一/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

date8日星期二/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

date9日星期三/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 = DocumentBuilderFactory.newInstance().newDocumentBuilder();

//is是网络连接得到的输入流

Document doc = builder.parse(is);

if(doc==null) throw new Exception();

Element element = doc.getDocumentElement();

NodeList childList = element.getChildNodes();

for(int i=0; ichildList.getLength(); i++){

Element e = (Element) childList.item(i);

String tag = e.getTagName();

String text = e.getTextContent();

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)){

//风向

}

}

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

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

参数为city=城市名称

尝试获取南昌的天气预报

南昌

得到下面xml数据

?xml version="1.0" encoding="utf-8"?

resp

  city南昌/city

  updatetime16:55/updatetime

  wendu5/wendu

  fengli3级/fengli

  shidu90%/shidu

  fengxiang北风/fengxiang

  sunrise_106:54/sunrise_1

  sunset_117:19/sunset_1

  sunrise_2/

  sunset_2/

  environment

    aqi26/aqi

    pm2513/pm25

    suggest各类人群可自由活动/suggest

    quality优/quality

    MajorPollutants/

    o344/o3

    co1/co

    pm1014/pm10

    so24/so2

    no227/no2

    time16:00:00/time

  /environment

  yesterday

    date_14日星期五/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_13-4级/fl_1

    /night_1

  /yesterday

  forecast

    weather

      date5日星期六/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

      date6日星期天/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

      date7日星期一/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

      date8日星期二/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

      date9日星期三/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 = DocumentBuilderFactory.newInstance().newDocumentBuilder();

//is是网络连接得到的输入流

Document doc = builder.parse(is);

if(doc==null) throw new Exception();

Element element = doc.getDocumentElement();

NodeList childList = element.getChildNodes();

for(int i=0; ichildList.getLength(); i++){

Element e = (Element) childList.item(i);

String tag = e.getTagName();

String text = e.getTextContent();

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)){

//风向

}

}

如何自己动手做一个android天气预报的app

一个Android天气预报要用到的代码文件,可显示操作菜单,显示未来四天天气、将全国城市列表写入数据库、初始化数据解析类,界面控件,消息接收器Handler、线程消息接收器、左侧菜单选择事件监听、后退按钮监听等,代码为

227    

                    if(mycitys.size()==1){

 

228    

                    showToast("至少要保留一个城市");

 

229    

                    }else{   

230    

                    mycitys.remove(position);

 

231    

                    writeMyCitys();   

232    

                    sAdapter.notifyDataSetChanged();

 

233    

                    currCityId=mycitys.get(0).get("cityId");

 

234    

                    changeSearchState();   

235    

                    }   

236    

                    }   

237    

                });   

238    

                builder.setNegativeButton("取    消",

 

239    

                new DialogInterface.OnClickListener() {

 

240    

                    public void onClick(DialogInterface dialog, int which) {

 

241    

                        dialog.dismiss();   

242    

                    }   

243    

                });   

244    

        builder.show();   

245    

        return false;   

246    

    }

 

247    

    //

监听后退按钮   

248    

    @Override  

249    

    public boolean

onKeyDown(int

keyCode, KeyEvent event) {

 

250    

        if (keyCode ==

KeyEvent.KEYCODE_BACK) {   

251    

            // 如果当前menu没有显示   

252    

            if (!isBack) {

 

253    

                showToast("再按一次退出");

 

254    

                downTime = event.getDownTime();

 

255    

                isBack = true;   

256    

                return true;   

257    

            } else {   

258    

                if (event.getDownTime() -

downTime = 2000) {   

259    

                    AppManager.getAppManager().AppExit(Weather.this);

 

260    

                } else {   

261    

                    showToast("再按一次退出");

 

262    

                    downTime = event.getDownTime();

 

263    

                    return true;   

264    

                }   

265    

            }   

266    

        }

 

267    

        return super.onKeyDown(keyCode, event);

 

268    

    }

 

269    

    @Override  

270    

    protected void

onDestroy() {   

271    

        if(mVibrator!=null){

 

272    

        mVibrator.cancel();   

273    

        }

 

274    

        super.onDestroy();

 

275    

    }

 

276    

}  

求Android天气预报的开发源代码

package com.nrzc.weatherstation;

import android.content.Context;

import android.hardware.Sensor;

import android.hardware.SensorEvent;

import android.hardware.SensorEventListener;

import android.hardware.SensorManager;

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.widget.TextView;

import java.util.Timer;

import java.util.TimerTask;

/**

* 环境传感器

* 气象站

*/

public class MainActivity extends AppCompatActivity {

private SensorManager sensorManager;

private TextView temperatureTextView;

private TextView pressureTextView;

private TextView lightTextView;

private float currentTemperature=Float.NaN;

private float currentPressure=Float.NaN;

private float currentLight=Float.NaN;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();

Timer updateTimer=new Timer("weatherUpdate");

updateTimer.scheduleAtFixedRate(new TimerTask() {

@Override

public void run() {

updateGUI();

}

},0,1000);

}

private void init(){

temperatureTextView=(TextView)findViewById(R.id.temperature);

pressureTextView=(TextView)findViewById(R.id.pressure);

lightTextView=(TextView)findViewById(R.id.light);

sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);

}

private final SensorEventListener tempSensorEventListener=new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

currentTemperature=event.values[0];

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

private final SensorEventListener pressureSensorEventListener=new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

currentPressure=event.values[0];

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

private final SensorEventListener lightSensorEventListener=new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent event) {

currentLight=event.values[0];

}

@Override

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

@Override

protected void onResume() {

super.onResume();

Sensor lightSensor=sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);

if (lightSensor!=null)

sensorManager.registerListener(lightSensorEventListener,

lightSensor,

SensorManager.SENSOR_DELAY_NORMAL);

else

lightTextView.setText("Light Sensor Unavailable");

Sensor pressureSensor=sensorManager.getDefaultSensor(Sensor.TYPE_PRESSURE);

if (pressureSensor!=null)

sensorManager.registerListener(pressureSensorEventListener,

pressureSensor,SensorManager.SENSOR_DELAY_NORMAL);

else

pressureTextView.setText("Barometer Unavailable");

Sensor temperatureSensor=sensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE);

if (temperatureSensor!=null)

sensorManager.registerListener(tempSensorEventListener,

temperatureSensor,

SensorManager.SENSOR_DELAY_NORMAL);

else

temperatureTextView.setText("Thermometer Unavailable");

}

@Override

protected void onPause() {

sensorManager.unregisterListener(pressureSensorEventListener);

sensorManager.unregisterListener(tempSensorEventListener);

sensorManager.unregisterListener(lightSensorEventListener);

super.onPause();

}

private void updateGUI(){

runOnUiThread(new Runnable() {

@Override

public void run() {

if(!Float.isNaN(currentPressure)){

pressureTextView.setText(currentPressure+"hPa");

pressureTextView.invalidate();

}

if (!Float.isNaN(currentLight)){

String lightStr="Sunny";

if (currentLight=SensorManager.LIGHT_CLOUDY)

lightStr="night";

else if (currentLight=SensorManager.LIGHT_OVERCAST)

lightStr="Cloudy";

else if (currentLight=SensorManager.LIGHT_SUNLIGHT)

lightStr="Overcast";

lightTextView.setText(lightStr);

lightTextView.invalidate();

}

if (!Float.isNaN(currentTemperature)){

temperatureTextView.setText(currentTemperature+"C");

temperatureTextView.invalidate();

}

}

});

}

}