精华内容
下载资源
问答
  • 【1】联网获取心知天气下发的当日天气信息,如:温度、湿度、风向、风力等级等; 【2】自带RTC时钟,支持人机交互时间修改; 【3】支持2.4Gwifi连接,支持更换地点后直接修改重联wifi信息(含wifi名称、wiif密码,...
  • 【1】联网获取心知天气下发的当日天气信息,如:温度、湿度、风向、风力等级等; 【2】自带RTC时钟,支持人机交互时间修改; 【3】支持2.4Gwifi连接,支持更换地点后直接修改重联wifi信息(含wifi名称、wiif密码,...
  • 在上一版的基础上新增并修改了显示当天气象图标的大小尺寸1.3寸可选择40字体(新增),0.96选择36字体,解决了未来3天天气更新获取json数据后,查找到相关信息而显示n/a
  • 由于网站自身功能的需要就开始查询天气预报的相关资料,在百度搜索框中输入 java web 天气预报貌似没有结果,于是就搜索视频进行学习,但是搜索的视频都是牛头不对马尾的。于是就到百度贴吧里面提问,吧友给说是用...

    由于网站自身功能的需要就开始查询天气预报的相关资料,

    在百度搜索框中输入   java web  天气预报

    貌似没有结果,于是就搜索视频进行学习,但是搜索的视频都是牛头不对马尾的。

    于是就到百度贴吧里面提问,吧友给说是用web service 进行调用,

    但是弄了半天还是不懂,所以就到开源中国讨论区进行提问,

    提问没有一会儿,一个朋友给我留言说是用不了这么麻烦,直接到心知天气这个网站就行了,

    也没有给我说什么具体的操作的步骤,就是给了我一个网址,我就点击了一下这个网址,一看,有三个超级大的按钮,

    我就选择了API的那个,但是研究了半天貌似好像要钱,就回复了那个朋友,说是要收费,在等待的同时继续在这个网站里面游荡着,突然我点击到了获取插件的那个按钮上面,然后就看到一个十分清晰的获取流程,马上就能明白是什么意思,所以就选择并且设置完自己想要的那个天气预报的样式,复制代码,粘贴到自己网页中需要用到的地方发,反复调整了一下,感觉挺好的,就用了。

    感觉这个插件超级的好用,而且使用的时候非常的简单,没有什么其他的获取接口什么的代码,只是通过界面的形式设置天气预报的样式,

    然后直接获取一个iframe的代码就成功了!

    通过这个学习的过程,让我知道了在贴吧,或者是在开源中国中提问能更快的获得学习的方法,效率也是比较高的。

    自己搜索往往效率不怎么高,通过其他人的指点,自己能更好的找到答案。

    心知天气

    然后点击获取网页插件,然后获取iframe代码,粘贴到html页面中合适的位置即可。

    0818b9ca8b590ca3270a3433284dd417.png

    展开全文
  • 增加了json反序列化检查,彻底解决因为较长的数据没有反序列检查工作而查找数据失败,导致获取到返回值,注释掉了农历里面没有使用的变量 2.注释掉U8g2库,只用SH1106Wire.h库,尽量减少程序大小。由原来的49%到...
  • 尽量采用有名气的api平台,当前日期改用:http://quan.suning.com/getSysTime.do 苏宁的后台数据,原9.2版本采用和风api接口里面获取,由于天气更新不是实时更新,所以零点时间显示会更新延后,加上之前的时间库函数...
  • 修改了气象文字,字体大小不变,修改成了获取未来3天气象数据判断,如果查找到关键字就跳过此次更新。ESP8266_and_ESP32_OLED_driver_for_SSD1306_displays文件夹下的OLEDDisplayFonts.h中。 2.新增时间库,用来...
  • V9.4 修复上一版本更新后,日期API接口获取到数据的bug。
  • 天气变化多端如孩子的脸一样说变就变,前一分钟骄阳似火,一会就滂沱大雨,所以说天气预报是每一个手机里必可少的功能,每次出门都习惯留意一下天气,但是关键的时候掉链子,iphone 6s通知栏中的天气预报经常会...

    天气变化多端如孩子的脸一样说变就变,前一分钟骄阳似火,不一会就滂沱大雨,所以说天气预报是每一个手机里必不可少的功能,每次出门都习惯留意一下天气,但是关键的时候掉链子,iphone 6s通知栏中的天气预报经常会莫名的消失,让本人很是苦恼,费了不少的脑力,才找到了问题的原因就是天气定位功能关闭了,如何让消失不见的天气预报重新显示出来呢,下面就有我们河东软件园带大家来了解一下具体的操作步骤。

    操作方法

    1、首先打开6s中的通知栏,看一下通知栏中有没有天气预报信息

    cb923cbc470d13517f927fe94db36073.png

    2、打开手机的主页面,在页面上找到【设置】功能

    9e9b4384af01a317dac91baf68e605a2.png

    3、在设置功能里找到【隐私】,并且打开此功能进行设置

    0a0d999ed4962f8fd0b545876b9e80fb.png

    4、在隐私功能打开之后,就会在最上角显示一个【定位服务功能】,查看一下当下显示的状态,选择打开即可。

    c220ae6dd6c12743bf3adc9546d0c886.png

    5、接下来在找到【天气】,在天气的右边会显示一个永不提示功能,然后打开【天气】

    f0bde321ec2640a91597914541c51518.png

    6、在允许访问的位置信息处将永不设置为始终

    a699ff102755e1e660deda336d75df0d.png

    7、我们将手机切换到主屏幕中,在主界面上找到天气这项功能并打开

    6ecdfbfa4978c65be4c7720db65d7b24.png

    8、最后完成所有设置后,下来菜单,天气信息就会呈现在通知栏了

    adb1f8454e0911c4cf2968f23043591b.png

    通过上述方法,我们就能解决苹果手机天气提醒功能不显示的问题了, 更多苹果手机教程请继续关注河东软件园!

    展开全文
  • 在网页上动态显示天气预报

    热门讨论 2012-10-16 15:41:02
    实用,在很多展示的网站中可以直接的实用!代码有注释,可以当成插件使用
  • 微信小程序 天气预报 实例主要功能 自动定位所在城市 根据所定位的城市获取天气信息 显示未来几天的天气情况 查看当天天气的详情信息 先看效果图 微信小程序-天气 首页 微信小程序-天气 详情页 思路及编码部份...
  • 简单版天气预报显示天气预报(第二步) 接着上一步的:[https://blog.csdn.net/weixin_44889138/article/details/102748057] 上一步的链接 ListView的改进,因为每次在getView()方法中还是会调用View的...

    Android简单版天气预报,显示天气预报(第二步)

    接着上一步的:[https://blog.csdn.net/weixin_44889138/article/details/102748057]
    上一步的链接

    ListView的改进,因为每次在getView()方法中还是会调用View的findViewById()方法来获取一次控件的实例,写一个内部类,利用**view.setTag()**存储,getTag()取。其实实现的机制跟RecycleView差不多

    package com.example.xhhweather;
    
    import android.content.Intent;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import java.util.List;
    
    public class CityAdapter extends BaseAdapter {
        //
        class ViewHolder{
            TextView TVcityName;
            //删除城市
            ImageView ivDelCity;
            //选择城市后返回天气界面
            ImageView ivQuyCity;
        }
        private List<CityItem> list;
    
        public CityAdapter(List<CityItem> list){
            this.list=list;
        }
        @Override
        public View getView(final int position, View covertView, final ViewGroup viewGroup) {
            View view;
            ViewHolder viewHolder;
            if(covertView==null){
                view= LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.city_item,viewGroup,false);
                viewHolder=new ViewHolder();
                viewHolder.TVcityName=view.findViewById(R.id.tv_city_name);
                viewHolder.ivQuyCity=view.findViewById(R.id.btn_move);
                viewHolder.ivDelCity=view.findViewById(R.id.iv_del_city);
                //将viewHolder存入在view中
                view.setTag(viewHolder);
            }else{
                view=covertView;
                viewHolder= (ViewHolder) view.getTag();
            }
    
            CityItem cityItem= list.get(position);
            viewHolder.TVcityName.setText(cityItem.getCityName());
    
            //删除城市
            viewHolder.ivDelCity.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    list.remove(position);
                    notifyDataSetChanged();//本身就是adapter
                }
            });
    
            //移动城市
            viewHolder.ivQuyCity.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    CityItem city=list.get(position);
                    Toast.makeText(viewGroup.getContext(),city.getCityPinYin(),Toast.LENGTH_SHORT).show();
    
                }
            });
            return view;
        }
        @Override
        public int getCount() {
            return list.size();
        }
    
        @Override
        public Object getItem(int i) {
            return list.get(i);
        }
    
        @Override
        public long getItemId(int i) {
            return i;
        }
    
    }
    
    package com.example.xhhweather;
    
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.bumptech.glide.Glide;
    import com.example.xhhweather.gson.Weather;
    import com.example.xhhweather.gson.WeatherResDaily;
    import com.example.xhhweather.gson.WeatherResults;
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    import okhttp3.Call;
    import okhttp3.Callback;
    import okhttp3.Response;
    
    public class MainActivity extends AppCompatActivity{
        private Button btnSelectCity;
        private TextView weatherTitleCityname;
    
        private TextView tvFirstDayDate;
        private TextView tvFirstDayPhe;
        private TextView tvFirstDayHigh;
        private TextView tvFirstDayLow;
    
        private TextView tvSecondDayDate;
        private TextView tvSecondDayPhe;
        private TextView tvSecondDayHigh;
        private TextView tvSecondDayLow;
    
        private TextView tvThirdDayDate;
        private TextView tvThirdDayPhe;
        private TextView tvThirdDayHigh;
        private TextView tvThirdDayLow;
    
        private TextView temperatureText;
        private TextView caseText;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initfindViewById();
    
    
            btnSelectCity.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Intent intent=new Intent(MainActivity.this,SelectCity.class);
                    startActivityForResult(intent,1001);
                }
            });
    
        }
    
        /**
         * 初始化
         */
        private void initfindViewById(){
            btnSelectCity=findViewById(R.id.manage_city_btn);
            weatherTitleCityname=findViewById(R.id.weather_title_cityname);
            temperatureText=findViewById(R.id.temperature_text);
            caseText=findViewById(R.id.case_text);
    
            tvFirstDayDate=findViewById(R.id.tv_firstday_date);
            tvFirstDayPhe=findViewById(R.id.tv_firstday_phe);
            tvFirstDayHigh=findViewById(R.id.tv_firstday_high);
            tvFirstDayLow=findViewById(R.id.tv_firstday_low);
    
            tvSecondDayDate=findViewById(R.id.tv_secondday_date);
            tvSecondDayPhe=findViewById(R.id.tv_secondday_phe);
            tvSecondDayHigh=findViewById(R.id.tv_secondday_high);
            tvSecondDayLow=findViewById(R.id.tv_secondday_low);
    
            tvThirdDayDate=findViewById(R.id.tv_thirdday_date);
            tvThirdDayPhe=findViewById(R.id.tv_thirdday_phe);
            tvThirdDayHigh=findViewById(R.id.tv_thirdday_high);
            tvThirdDayLow=findViewById(R.id.tv_thirdday_low);
        }
        /**
         * 得到
         * @param requestCode
         * @param resultCode
         * @param data
         */
    
        @Override
        protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode==1001 && resultCode==1002){
                String cityPinYin=data.getStringExtra("CITYPINYIN");
                //Log.e("MainActivity","返回城市的拼音"+cityPinYin);
                //心知天气的api
                String url="https://api.seniverse.com/v3/weather/daily.json?key=SojsF4VNkV_cTQexq&location=" + cityPinYin + "&language=zh-Hans&unit=c&start=0&days=5";
                HttpUtil.sendOkHttpRequest(url, new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
                        e.printStackTrace();
                    }
    
                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        final String weatherData=response.body().string();
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                Log.e("MainActivity","得到的数据"+weatherData);
                                Gson gson =new Gson();
                                Weather weatherInfo=gson.fromJson(weatherData,Weather.class);
    
                                WeatherResults results=weatherInfo.getResults().get(0);
                                String cityName=results.getLocation().getName();//城市名称
                                weatherTitleCityname.setText(cityName);
    
                                //将3天内的天气数据获得后存入二维数组
                                String [] [] resultDaily=new String[3][5];
                                for(int i=0;i<3;i++){
                                    for(int j=0;j<4;){
                                        resultDaily[i][j]=results.getDaily().get(i).getDate();j++;
                                        resultDaily[i][j]=results.getDaily().get(i).getText_day();j++;
                                        resultDaily[i][j]=results.getDaily().get(i).getHigh();j++;
                                        resultDaily[i][j]=results.getDaily().get(i).getLow();j++;
                                    }
                                }
                                temperatureText.setText(resultDaily[0][2]+"℃");
                                caseText.setText(resultDaily[0][1]);
    
                                for(int j=0;j<4;){
                                    //Log.e("resultDaily",resultDaily[0][j]);
                                    tvFirstDayDate.setText(resultDaily[0][j]);j++;
                                    tvFirstDayPhe.setText(resultDaily[0][j]);j++;
                                    tvFirstDayHigh.setText(resultDaily[0][j]);j++;
                                    tvFirstDayLow.setText(resultDaily[0][j]);j++;
                                }
                                for(int j=0;j<4;){
                                    tvSecondDayDate.setText(resultDaily[1][j]);j++;
                                    tvSecondDayPhe.setText(resultDaily[1][j]);j++;
                                    tvSecondDayHigh.setText(resultDaily[1][j]);j++;
                                    tvSecondDayLow.setText(resultDaily[1][j]);j++;
                                }
                                for(int j=0;j<4;){
                                    tvThirdDayDate.setText(resultDaily[2][j]);j++;
                                    tvThirdDayPhe.setText(resultDaily[2][j]);j++;
                                    tvThirdDayHigh.setText(resultDaily[2][j]);j++;
                                    tvThirdDayLow.setText(resultDaily[2][j]);j++;
                                }
                            }
                        });
                    }
                });
            }
        }
    
    }
    
    package com.example.xhhweather;
    
    
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    
    public class HttpUtil {
        public static void sendOkHttpRequest(String url,okhttp3.Callback callback){
            OkHttpClient client=new OkHttpClient();
            Request request=new Request.Builder()
                    .url(url)
                    .build();
            client.newCall(request).enqueue(callback);
        }
    }
    
    

    接下来,分析重点
    首先看一下心知天气文档,得知需要城市拼音,才能利用api得到不同城市的接口,返回的数据是json格式

    访问api需要使用HTTP协议访问网络,那么应该得先想到要用到网络的权限
    uses-permission android:name=“android.permission.INTERNET”

    这里我用的是OkHttp代替HttpURLConnecion,需要导入依赖
    implementation ‘com.squareup.okhttp3:okhttp:3.4.1’

    如果不熟悉用法,那就从简单的做起,我介绍怎么简单获得必应图片的每日一图,与本项目有间接的关系(后期用到)

    导入这个依赖 implementation ‘com.github.bumptech.glide:glide:4.10.0’,简单快捷可以将图片加载,而且容易理解

    建一个HttpUtil类的原因
    一个应用程序很可能会在许多地方都使用到网络功能,而发送HTTP请求的代码基本相同,如果每次都去编写,这显然很差劲,将这些通用的网络操作提取到一个公共的类里,并提供一个静态方法

    package com.example.atuogetpic;
    
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    
    public class HttpUtil {
        public static void sendOkHttpRequest(String address,okhttp3.Callback callback){
            OkHttpClient client=new OkHttpClient();
            Request request=new Request.Builder()
                    .url(address)
                    .build();
            client.newCall(request).enqueue(callback);
        }
    }
    
    
    package com.example.atuogetpic;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.preference.PreferenceManager;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.ImageView;
    
    import com.bumptech.glide.Glide;
    
    import java.io.IOException;
    
    import okhttp3.Call;
    import okhttp3.Callback;
    import okhttp3.HttpUrl;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    import static android.preference.PreferenceManager.getDefaultSharedPreferences;
    
    public class MainActivity extends AppCompatActivity {
        private ImageView bingPicImg;
        private Button btnQ;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            bingPicImg=findViewById(R.id.bing_pic_img);
            btnQ=findViewById(R.id.btn);
            btnQ.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    loadBingPic();
                }
            });
        }
        /**
         * 加载必应每日一图
         */
        private void loadBingPic(){
            final String requestBingPic="http://guolin.tech/api/bing_pic";
            HttpUtil.sendOkHttpRequest(requestBingPic, new Callback() {
                @Override
                public void onResponse(Call call, Response response) throws IOException {
                    final String bingPic=response.body().string();
                    SharedPreferences.Editor editor=
                            getSharedPreferences("bing_pic",MODE_PRIVATE).edit();
                    editor.putString("bing_pic",bingPic);
                    editor.apply();
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            Glide.with(MainActivity.this).load(bingPic).into(bingPicImg);//加载图片
                        }
                    });
                }
                @Override
                public void onFailure(Call call, IOException e) {
                    e.printStackTrace();
                }
            });
        }
    }
    
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:orientation="vertical">
    
        <Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btn"
            android:text="换图"/>
    
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/bing_pic_img"
            android:src="@drawable/bg"/>
    
    
    
    </LinearLayout>
    

    好了,网络请求应该都会了吧

    接下来才是重头戏,需要解析json里的数据,但是返回的数据太过复杂(可以看心知天气文档)
    可以用gson解析 ,需要导入依赖
    implementation ‘com.google.code.gson:gson:2.8.5’

    它主要可以将一段json格式的字符串自动映射成一个对象,不用我们去编写代码解析
    {
    “results”:[
    {
    “location”:{“id”:“WTW3SJ5ZBJUY”,“name”:“上海”,“country”:“CN”,“path”:“上海,上海,中国”,“timezone”:“Asia/Shanghai”,“timezone_offset”:"+08:00"}
    ,“daily”:[
    { “date”:“2019-10-28”,“text_day”:“多云”,“code_day”:“4”,“text_night”:“晴”,“code_night”:“1”,“high”:“21”,“low”:“14”,“precip”:"",“wind_direction”:“西”,“wind_direction_degree”:“270”,“wind_speed”:“16.20”,“wind_scale”:“3”}
    ,{“date”:“2019-10-29”,“text_day”:“晴”,“code_day”:“0”,“text_night”:“晴”,“code_night”:“1”,“high”:“22”,“low”:“14”,“precip”:"",“wind_direction”:“东北”,“wind_direction_degree”:“45”,“wind_speed”:“25.20”,“wind_scale”:“4”}
    ,{“date”:“2019-10-30”,“text_day”:“晴”,“code_day”:“0”,“text_night”:“晴”,“code_night”:“1”,“high”:“22”,“low”:“14”,“precip”:"",“wind_direction”:“东”,“wind_direction_degree”:“90”,“wind_speed”:“16.20”,“wind_scale”:“3”}
    ],
    “last_update”:“2019-10-28T11:17:53+08:00”
    }
    ]
    }

    解析这个json数据
    1.{ }里面是一个一个results数组,就应该写成列表,而weather类表示 { }

    package com.example.xhhweather.gson;
    
    import java.util.List;
    
    public class Weather {
        private List<WeatherResults> results;//命名一定要与数据中的相同,一定要对应
    
        public List<WeatherResults> getResults() {
            return results;
        }
    
        public void setResults(List<WeatherResults> results) {
            this.results = results;
        }
    
        @Override
        public String toString() {
            return "Weather{" +
                    "results=" + results +
                    '}';
        }
    } 
    

    2.建一个WeatherResults类,results数组里面又有"location":{},“daily”:[],“last_update”:一个字符串

    package com.example.xhhweather.gson;
    
    import java.util.List;
    
    
     public class WeatherResults {
         private WeatherResLocation location;//对应location:{},命名一定要与数据中的相同,一定要对应
         private List<WeatherResDaily> daily;//对应daily:数组
         private String last_update;//对应"last_update":一个字符串
    
         public WeatherResLocation getLocation() {
             return location;
         }
    
         public List<WeatherResDaily> getDaily() {
             return daily;
         }
    
         public String getLast_update() {
             return last_update;
         }
    
         public void setLocation(WeatherResLocation location) {
             this.location = location;
         }
    
         public void setDaily(List<WeatherResDaily> daily) {
             this.daily = daily;
         }
    
         public void setLast_update(String last_update) {
             this.last_update = last_update;
         }
    
         @Override
         public String toString() {
             return "WeatherResults{" +
                     "location=" + location +
                     ", daily=" + daily +
                     ", last_update='" + last_update + '\'' +
                     '}';
         }
     }
    
    
    package com.example.xhhweather.gson;
    
    
    public class WeatherResDaily {
        private String date;
        private String text_day;
        private String code_day;
        private String text_night;
        private String code_night;
        private String high;
        private String low;
        private String precip;
        private String wind_direction;
        private String wind_direction_degree;
        private String wind_speed;
        private String wind_scale;
    
        public String getDate() {
            return date;
        }
    
        public String getText_day() {
            return text_day;
        }
    
        public String getCode_day() {
            return code_day;
        }
    
        public String getText_night() {
            return text_night;
        }
    
        public String getCode_night() {
            return code_night;
        }
    
        public String getHigh() {
            return high;
        }
    
        public String getLow() {
            return low;
        }
    
        public String getPrecip() {
            return precip;
        }
    
        public String getWind_direction() {
            return wind_direction;
        }
    
        public String getWind_direction_degree() {
            return wind_direction_degree;
        }
    
        public String getWind_speed() {
            return wind_speed;
        }
    
        public String getWind_scale() {
            return wind_scale;
        }
    
        public void setDate(String date) {
            this.date = date;
        }
    
        public void setText_day(String text_day) {
            this.text_day = text_day;
        }
    
        public void setCode_day(String code_day) {
            this.code_day = code_day;
        }
    
        public void setText_night(String text_night) {
            this.text_night = text_night;
        }
    
        public void setCode_night(String code_night) {
            this.code_night = code_night;
        }
    
        public void setHigh(String high) {
            this.high = high;
        }
    
        public void setLow(String low) {
            this.low = low;
        }
    
        public void setPrecip(String precip) {
            this.precip = precip;
        }
    
        public void setWind_direction(String wind_direction) {
            this.wind_direction = wind_direction;
        }
    
        public void setWind_direction_degree(String wind_direction_degree) {
            this.wind_direction_degree = wind_direction_degree;
        }
    
        public void setWind_speed(String wind_speed) {
            this.wind_speed = wind_speed;
        }
    
        public void setWind_scale(String wind_scale) {
            this.wind_scale = wind_scale;
        }
    
        @Override
        public String toString() {
            return "WeatherResDaily{" +
                    "date='" + date + '\'' +
                    ", text_day='" + text_day + '\'' +
                    ", code_day='" + code_day + '\'' +
                    ", text_night='" + text_night + '\'' +
                    ", code_night='" + code_night + '\'' +
                    ", high='" + high + '\'' +
                    ", low='" + low + '\'' +
                    ", precip='" + precip + '\'' +
                    ", wind_direction='" + wind_direction + '\'' +
                    ", wind_direction_degree='" + wind_direction_degree + '\'' +
                    ", wind_speed='" + wind_speed + '\'' +
                    ", wind_scale='" + wind_scale + '\'' +
                    '}';
        }
    }
    
    package com.example.xhhweather.gson;
    
    
    public class WeatherResLocation {
        private String id;
        private String name;
        private String country;
        private String path;
        private String timezone;
        private String timezone_offset;
    
        public String getId() {
            return id;
        }
    
        public String getName() {
            return name;
        }
    
        public String getCountry() {
            return country;
        }
    
        public String getPath() {
            return path;
        }
    
        public String getTimezone() {
            return timezone;
        }
    
        public String getTimezone_offset() {
            return timezone_offset;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setCountry(String country) {
            this.country = country;
        }
    
        public void setPath(String path) {
            this.path = path;
        }
    
        public void setTimezone(String timezone) {
            this.timezone = timezone;
        }
    
        public void setTimezone_offset(String timezone_offset) {
            this.timezone_offset = timezone_offset;
        }
    
        @Override
        public String toString() {
            return "WeatherResLocation{" +
                    "id='" + id + '\'' +
                    ", name='" + name + '\'' +
                    ", country='" + country + '\'' +
                    ", path='" + path + '\'' +
                    ", timezone='" + timezone + '\'' +
                    ", timezone_offset='" + timezone_offset + '\'' +
                    '}';
        }
    }
    

    代码可以自动生成,右键点击general(首先要先命名)

    Gson gson =new Gson();
    Weather weatherInfo=gson.fromJson(weatherData,Weather.class);
    weatherData为你发起请求后返回的json数据
    这样就可以得到你想要的数据
    在这里插入图片描述
    在这里插入图片描述
    那就先到这了,代码会在下一步开源

    展开全文
  • 根据地区显示天气预报、非常好的html,可嵌入网站直接使用、可做参考
  • 1问题描述使用小程序使用天气api显示天气。2算法描述首先打开微信开发者工具创建一个新的小程序项目,但是可以选择任何模板,进入新建的小程序,先将index中的js,wxml,wxss中的...

    1问题描述

    使用小程序使用天气api显示天气。

    2算法描述

    首先打开微信开发者工具创建一个新的小程序项目,但是可以不选择任何模板,进入新建的小程序,先将index中的js,wxml,wxss中的原有格式删除,保留空白页面。首先在index.js中重新建立page,加入data数据,先是获取城市id,然后再获取数据,以及获取结果,在获取的结果中输入要使用的api的请求示例;使用的是url:’’(请求示例)和key:’’(密钥);注意,要使用的请求示例只是api接口中的一部分。加入请求示例后要输入个人申请的qpi的密钥,密钥是每一个申请的用户都有的独一的一份密钥,在此之前就需要去注册一份个人api用户;然后就是获取成功后的语句,再次设定结果就可以多次获取想要的城市的天气预报了。

    在index.js中设定好了如何获取api的数据后就是要设计前端界面了,还是在view标签中写,开始的输入城市栏:<input placeholder="输入城市" name="cityid" bindblur="getCityId">,然后根据index.js中设定的未来天气(future)和当前天气(today)获取温度等信息。

    获取的数据:

    9f407197de812d4c04c07cd6e14fcba4.png

    小程序页面:

    1e701d5436e28432917723f89353fc7f.png

    3 代码:

    代码清单index.wxml

    <!--index.wxml-->
    <view class="container">
     <view class="search">
       <input placeholder="输入城市" name="cityid" bindblur="getCityId">
       </input>  
     </view>
     <view class="results">
       <view class="sk">
         <view class="city">{{id.id}}</view>
         <view class="temp">温度:{{today.temperature}}</view>
         <view class="power">风力:{{today.power}}</view>
         <view class="info">天气:{{today.info}}</view>
         <view class="direct">风向:{{today.direct}}</view>
       </view>
     </view>
    </view>

    代码清单:index.wxss

    /**index.wxss**/
    .search{
     width: 100%;
     height: 100rpx;
     background-color: aqua;
     padding: 15rpx 0;
     box-sizing: border-box;
    }
    .search input{
     display:block;
     width: 90%;
     height: 70rpx;
     background-color: white;
     margin: auto;
     border-radius: 35rpx;
     text-align: center;
    }

    代码清单:index.json

    // index.js
    // 获取应用实例
    const app = getApp()
    Page({
     /**
      * 页面的初始数据
      */
     data: {
       id:"苏州",
       future:{},
       today:{},
     },
     getCityId:function(event){
       this.setData({
         id:event.detail.value == '' ? '苏州':event.detail.value
       })
       this.getResults()
     },
     getResults:function(){
       let that=this
       wx.request({
         url: 'https://apis.juhe.cn/simpleWeather/query',
         data:{
           city:that.data.id,
           key:'218212d612bf0d45f92c66f47371869f'
         },
         success:function(rsp){
           console.log(rsp)
           that.setData({
             future:rsp.data.result.future,
             today:rsp.data.result.realtime,
           })
         }
       })
     },
     /**
      * 生命周期函数--监听页面加载
      */
     onLoad: function (options) {
       this.getResults();
     },
     /**
      * 生命周期函数--监听页面初次渲染完成
      */
     onReady: function () {
     },
     /**
      * 生命周期函数--监听页面显示
      */
     onShow: function () {
     },
     /**
      * 生命周期函数--监听页面隐藏
      */
     onHide: function () {
     },
     /**
      * 生命周期函数--监听页面卸载
      */
     onUnload: function () {
     },
     /**
      * 页面相关事件处理函数--监听用户下拉动作
      */
     onPullDownRefresh: function () {
     },
     /**
      * 页面上拉触底事件的处理函数
      */
     onReachBottom: function () {
     },
     /**
      * 用户点击右上角分享
      */
     onShareAppMessage: function () {
     }
    })

    4 结语

    本次是利用api在小程序上显示我所想获取的地区的天气。

    实习编辑:李欣容

    稿件来源:深度学习与文旅应用实验室(DLETA)

    展开全文
  • 天气预报源码.zip

    2019-07-10 20:13:46
    天气预报源码是一个可以自动定位和手动选择的天气预报源码,打开app首先会有一个四屏的引导界面,城市定位有...天气详情页面是模仿的微信滑动页面来显示最近几天的天气,不过知道什么原因天气信息显示不出来。   
  • V9.5,优化了一些if条件语句,修复了里面很多正确的逻辑判断,去掉重要的气象数据存储到eeprom中。
  • 刚开始学PHP,先编写了一个程序,放在自己的主页上,可以显示天气预报,当然还很完善,希望大家给提意见。程序如下:$fcont=file("http://www.bjmb.gov.cn/today.asp");$arr=array();for($i=0;$i$tmp=$fcont[$i];$...
  • 登录界面添加记住我的复选框,当复选框选中时,使用SharedPreferences存储类在合适的时机实现登录名和...登录成功后显示多个城市的天气预报效果。天气信息使用XML文档和JSON文档两种方式实现,并在程序中解析使用。
  • 刚开始学php,先编写了一个程序,放在自己的主页上,可以显示天气预报,当然还很完善,希望大家给提意见。程序如下:$fcont=file("http://www.bjmb.gov.cn/today.asp");$arr=array();for($i=0;$i$tmp=$fcont[$i];$...
  • 在上一版本的基础上修改了3天预报天气更新独立设置,实时天气更新间隔时间也是独立设置,农历更新间隔也是独立设置,修改了实时天气和农历json数据处理改静态,未来3天天气数据改保持动态。彻底修复隔天农历更新...
  • 带有ESP8266微控制器(Wemos D1 mini)的下一步显示屏,显示家庭助理温度传感器(室内,室外和游泳池中的温度)和来自互联网的天气预报。 但是您可以显示任何Hassio传感器,因此,如果您要创建自己的天气预报,则...
  • 前端HTML页面获取实时天气预报并展示昨天完成了一个实时显示天气预报的功能,今天在这完记录一下,纯前端layui和JQuery代码。没有后台交互获取用户打开页面的IP地址进行定位城市。试了很多方法都大同小异,我在这...
  • java实现WebService显示天气预报

    热门讨论 2010-01-26 23:32:26
    我做了下改动,大家分享一下。 webService服务地址: ... private static String getSoapRequest1(String city) { try { InputStreamReader isr = new InputStreamReader(new FileInputStream( ...
  • 天气预报webserviceweb service实现天气预报的详细步骤天气预报webservice时间:2021-06-03阅读:()webservice简单说, WebService就是一些站点开放一些服务出来, 也可以是你自己开发的Service, 也就是一些方法, 通过...
  • ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步4屏带中文显示 老规矩,上图: 第一屏幕: 第二屏: 第三屏: 第四屏: #include <Arduino.h> #include <ESP8266WiFi.h> #include <ESP8266...
  • 微信小程序城市天气预报切换显示

    千次阅读 2017-05-05 21:59:17
    利用微信小程序的内置地图的Api,实现天气预报的城市切换。
  • 刚开始学php,先编写了一个程序,放在自己的主页上,可以显示天气预报,当然还很完善,希望大家给提意见。程序如下:$fcont=file("http://www.bjmb.gov.cn/today.asp");$arr=array();for($i=0;$i$tmp=$fcont[$i];...
  • 天气预报实时显示系统设计

    千次阅读 2017-07-26 20:48:33
    天气预报实时显示系统 faust.cao–曹恒镇
  • 解决办法:打开浏览器依次打开“工具”--“Interne选项”--“安全”,点击“默认级别”恢复默认级别(如下图所示),然后点“确定”,重新打开浏览器即可.b.Internet选项中的“隐私”选项级别设置过高。解决办法:...
  • js天气预报 js版天气预报接口

    热门讨论 2011-05-17 08:52:22
    js版得,可能显示的比较慢,显示不出来刷新下,经本人测试,可以显示出来,先去QQ查看ip,然后把ip转换城市,最后由城市代码去查看天气

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,782
精华内容 6,312
关键字:

为什么天气预报不显示