当前位置:   article > 正文

Android 实战制作简易天气预报

Android 实战制作简易天气预报

天气预报

创作不易,可否给作者点个赞再走

在这里插入图片描述
临近期末,Android需要交作业所以做了一个比较简单的app,小白勿喷

涉及知识点

容器类布局RelativeLayout,LinearLayout
基础控件的绘制和使用
TextView:显示文本内容
ImageView;设置图片
Button:按钮
EditText:接受客户输入内容
  • 1
  • 2
  • 3
  • 4
复杂控件的绘制和使用
lIstView:显示列表数据控件,使用设配器填充内部内容
	BaseAdapter的使用
	通知适配器,数据更新方式
	设置点击监听
  • 1
  • 2
  • 3
GridView:显示网格数据控件:与listview相同
ViewPager:可左右滑动,包含多个view或者fragment的控件
	FragmentStateAdapter使用
	需要网页发生变化时,提示适配器更新
	设置滑动图标指示器
	设置滑动监听
  • 1
  • 2
  • 3
  • 4
GardView:androidX包含的控件,用于LIst View的每一个item的容器类布局,可制作卡片式效果,包含自带属性,需要导入appNs域名
Activity
创建、绑定布局
生命周期
跳转与传值
  • 1
  • 2
  • 3
Fragment
加载进入viewPager的方式
Activity向Fragment的传值方式
  • 1
  • 2
数据储存
数据库操作
SQLiteOpenHelper的创建和使用
SQLiteDatebase函数的使用
创建表、增删改查
  • 1
  • 2
  • 3
共享参数存储
数据获取、存储
切换页面壁纸
  • 1
  • 2
第三方框架
XUtils:封装完善的多功能框架,本项目用于网络获取数据功能
Gson:解析json数据的框架
  • 1
  • 2
界面展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

软件功能前期分析
1.根据天气预报接口,获取网络数据
2.展示选择城市的天气情况,温度,风向,各种数据以及未来基本天气情况
3.将网络获取的城市天气信息保存到数据库中,便于无网络进行数据请求
4.对数据库中的城市天气进行增删改查
5.根据LocationManager api获取当前位置位置经纬度,再通过全球逆地理编码api获取网络数据,进而解析出当前所在位置信息
  • 1
  • 2
  • 3
  • 4
  • 5
难点分析
1.动态添加VIewPager对应小圆点指示器
切换界面时,刷新数据库数据
3.返回主界面时,改变ViewPager数据源页面的功能
4.改变首页背景图片
5.获取当前位置并显示在主页面
  • 1
  • 2
  • 3
  • 4
  • 5
页面切换逻辑
1.应用启动时,进入主界面,拓攻获取数据库的城市信息,获取网络数据,展示在Fragment中,在View Pager中滑动,点击加号按钮,跳转城市管理页面,点击更多页面,跳转更多按钮,跳转设置页面
2.城市管理页面,展示数据库存储的城市天气最新信息列表,点击返回按钮,返回上一级页面,点击加号按钮,跳转搜索更多城市界面,点击编辑按钮,跳转删除城市界面
3.搜索更多界面城市界面,网络展示热门城市名称,点击期中每一项,可跳转主界面,在主界面显示增加的城市信息,也可输入城市名称,点击搜索按钮,判断是否存在该城市信息,存在跳转主页面展示信息,否则提示用户重新输入
4.删除城市页面,展示数据库存储的城市名称列表,点击每一项的垃圾同按钮,可从数据库中删除记录,点击错号,弹出提示器,点击对号,从数据库删除操作的记录,并返回上一级城市管理界面,并且上一级页面也是显示删除后的数据信息,在返回上一级主界面,显示依然为操作后剩余的城市信息
更多设置界面,包含功能,更改背景颜色,清楚缓存数据,获取版本号,分享软件等操作
  • 1
  • 2
  • 3
  • 4
  • 5
所使用的天气预报接口为https://www.juhe.cn/docs/index/otherid/1

免费一天一百次,建议自己申请一个,个人经验有时候调试一百次根本不够用,请求不到数据时会闪退,可以在数据库里存入上一次的数据,但是次数用完了就不能实时更新;
**

我申请的key同时用的人太多啦已经不能用了,有需要的好兄弟自己申请一个吧

更新:有好兄弟反映说这个聚合的天气接口免费版一天只能用10次。。。我哭了哈哈,以前白嫖的一天还能用100次,太久没维护了,怪不得安装在我自己手机上的也用不了了。没办法有需要的好兄弟只能另寻其他的接口了。换个接口而已其他都一样的。

在util包的URLUtils.class中将key换成你自己申请的就行

在这里插入图片描述

**

或者可以改用腾云天气:https://wis.qq.com/weather/common?source=pc&weather_type=observe|index|rise|alarm|air|tips|forecast_24h&province=广西省&city=桂林市

免费不限次数,但是有个鸡肋的点,请求数据需要加上省份。
跟着老师做了两个版本,上传的是使用聚合api版本

在老师的版本上加上了定位的功能

源码:https://gitee.com/shidulin/weather_app.git
参考:https://www.bilibili.com/video/BV1QE411i7oQ
百度云:
链接:https://pan.baidu.com/s/1DpFrXvNf888zX_GnIkB-0g
提取码:dda2

**

聚合天气的版本用不了了,腾讯天气版本(腾讯版本UI跟聚合版本一摸一样的,只是展示的数据略有不同)

**:
链接: https://pan.baidu.com/s/1QW_EZsoXOdeJhgjQsIG4Yw?pwd=sc4g
提取码: sc4g

创作不易,可否给作者点个赞再走

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/467966
推荐阅读
相关标签
  

闽ICP备14008679号