android天气小项目

  该项目是老师在android教学中所布置的项目,界面简单,分别显示三个城市的天气情况,天气的不同所展示的图标也不同。

一、项目展示


## 二、Android代码
package com.example.weather;

import android.os.Bundle;

import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity implements
        View.OnClickListener {
    private TextView tvCity;
    private TextView tvWeather;
    private TextView tvTemp;
    private TextView tvWind;
    private TextView tvPm;
    private ImageView ivIcon;
    private Map<String, String> map;
    private List<Map<String, String>> list;
    private String temp, weather, name, pm, wind;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 初始化文本控件
        initView();
        try {
            //读取weather2.json文件
            InputStream is = this.getResources().openRawResource(R.raw.weather2);
            //把每个城市的天气信息集合存到weatherInfos中
            List<WeatherInfo> weatherInfos = WeatherService.getInfosFromJson(is);
            //循环读取weatherInfos中的每一条数据
            list = new ArrayList<Map<String, String>>();
            for (WeatherInfo info : weatherInfos) {
                map = new HashMap<String, String>();
                map.put("temp", info.getTemp());
                map.put("weather", info.getWeather());
                map.put("name", info.getName());
                map.put("pm", info.getPm());
                map.put("wind", info.getWind());
                list.add(map);
            }
        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(this, "解析信息失败", Toast.LENGTH_SHORT).show();
        }
        //自定义getMap()方法,显示天气信息到文本控件中,默认显示北京的天气
        getMap(1, R.drawable.sun);
    }
    private void initView() {
        tvCity = (TextView) findViewById(R.id.tv_city);
        tvWeather = (TextView) findViewById(R.id.tv_weather);
        tvTemp = (TextView) findViewById(R.id.tv_temp);
        tvWind = (TextView) findViewById(R.id.tv_wind);
        tvPm = (TextView) findViewById(R.id.tv_pm);
        ivIcon = (ImageView) findViewById(R.id.iv_icon);
        findViewById(R.id.btn_sh).setOnClickListener(this);
        findViewById(R.id.btn_bj).setOnClickListener(this);
        findViewById(R.id.btn_gz).setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {    //按钮的点击事件
        switch (v.getId()) {
            case R.id.btn_sh:
                getMap(0, R.drawable.cloud_sun);
                break;
            case R.id.btn_bj:
                getMap(1, R.drawable.sun);
                break;
            case R.id.btn_gz:
                getMap(2, R.drawable.clouds);
                break;
        }
    }
    //将城市天气信息分条展示到界面上
    private void getMap(int number, int iconNumber) {
        Map<String, String> cityMap = list.get(number);
        temp = cityMap.get("temp");
        weather = cityMap.get("weather");
        name = cityMap.get("name");
        pm = cityMap.get("pm");
        wind = cityMap.get("wind");
        tvCity.setText(name);
        tvWeather.setText(weather);
        tvTemp.setText("" + temp);
        tvWind.setText("风力  : " + wind);
        tvPm.setText("pm: " + pm);
        ivIcon.setImageResource(iconNumber);
    }
}

github完整代码地址:https://github.com/xxd6772123/Weather

三、总结

  该项目总体来说比较简单,考察控件的调用以及界面的转换,从而实现对各个城市天气情况的查看。

如果你觉得我这篇文章不错或者帮助到了你可以在本篇文章中给我点一个赞,您的一个小小鼓励将会是我在敲码路上的大大动力!!!!

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Android天气APP 前言 项目:https://github.com/w77996/Weather 多知天气,主要是给大家学习一下。 项目主要是12月23日开始建立,春节半个多月回家了,就没有写了。三月初完成了整个项目。耗时近两个月。平时在公司也就做点测试的任务,开发的任务还得等到毕业后才有TAT不知道毕业后会不会被留下,所以也是练练手。基于Rxjava+Retrofif+Ok之后也写了一个是http+Mvp的阅读类APP,链接在这里:HiReader,项目还没有完全写完,一直在更新,主要是自己学习一些主流的东西。 感谢开源 看别人的代码慢慢学习,你会看到自己的成长的~ 现在的我看这个毕业设计项目会觉得没有当初想的那么难了,可以用更高的效率,更好的方式去实现这个项目。 借鉴过的项目 就看天气 高仿雅虎天气 还有郭神的第二行代码,不解释 开源框架 Butterknife注解式框架 http://jakewharton.github.io/butterknife/ Glide图片加载框架 https://github.com/bumptech/glide Okhttp网络请求框架 http://square.github.io/okhttp/ LitePal数据库操作框架 https://github.com/LitePalFramework/LitePal Logger 开发日志框架 https://github.com/orhanobut/logger Gson json数据解析框架 https://github.com/google/gson SlidingMenu侧拉菜单框架 https://github.com/jfeinstein10/SlidingMenu SwipeMenuListView侧滑删除框架 https://github.com/baoyongzhang/SwipeMenuListView/ 易源数据提供的天气数据 https://www.showapi.com/ 极光推送服务 https://www.jiguang.cn/accounts/platform 有米广告平台 https://www.youmi.net/ 高德地图 http://lbs.amap.com/ 功能 第一次打开APP引导页,缓冲加载 天气信息的显示 广告,推送 桌面小工具 新闻资讯的查看 蓝牙串口传输温度
Android天气项目源码是一个用于获取和显示天气信息的应用程序的源代码。该项目使用了Android平台的开发工具和技术来实现。 该源码包含了与天气有关的数据获取、解析和展示的功能模块。其中包括: 1. 数据获取模块:通过与天气API的接口进行交互,实现获取天气相关数据的功能。例如,可以通过发送HTTP请求获取天气预报、实时温度和天气情况等数据。 2. 数据解析模块:对获取到的天气数据进行解析和处理。例如,对JSON格式的数据进行解析,提取有用的信息,并将其存储在合适的数据结构中。 3. 天气展示模块:根据解析后的天气数据,将其展示在用户界面上。可以使用多种布局和控件来显示天气情况,如温度、湿度、风力等信息,还可显示天气图标来代表不同的天气情况。 4. 用户交互模块:与用户进行交互的功能模块。例如,可以实现城市搜索功能,允许用户输入城市名称并获取该城市的天气数据。还可以提供设置功能,让用户自定义显示的天气信息。 5. 图表绘制模块:使用图表库来绘制天气数据的图表,以便更直观地展示天气情况的变化趋势。 该源码受益于Android平台的丰富功能和API支持,提供了一个完整的天气应用程序开发框架,可以用于学习和实践Android开发技术。开发人员可以根据自己的需求,进一步扩展和改进该源码,使其满足特定的功能和设计要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值