Android天气预报设计
——嵌入式软件开发
名字 |
功能模块 |
代码行数 |
备注 |
谢灿辉 |
Widget |
200 |
桌面小程序 |
李杨敏 |
GPS定位,百度地图API |
100-150 |
获取当前所在城市 |
丁小芳 |
城市选择Activity,天气API获取天气 |
100-200 |
包括数据库交互 |
本软件是一个天气类应用软件,带有widget,启动软件后可以定位所在城市或手动设置后实现天气查询,PM2.5查询,7天气温曲线,我们可从图片和文字中显现最近一周天气预报和相关温馨提示等。
这些数据的提供都通过后台服务获取,而后台服务会在一定时间间隔通过API获取并存储在数据库当中。
从以上可看出这个软件的主要功能有:
①启动APP Widget应用程序;
②设置界面,设置所要显示天气预报的城市;
③详细界面,通过图片文字显示当前一周的天气预报、温馨提示及气温曲线变化;
④显示界面,通过图片文字显示时间、温度等;
④分享界面
系统设计
- 模块
1.天气预报的显示
为了用户的体验更加便捷,我们将软件作为一个小插件定在了手机主面上,调用的数据使用在桌面上显示。而在用户界面上使用了(AppWidget)框架结构,提供直观的交互操作。
天气Widget开发步骤:
①设计Widget的布局
Res/layout/widget.xml res/drawable/widget_background.xml
创建Wiget的第一个步骤就是设计并实现Wiget的组件布局,就是Widget和用户交互的界面。Widget与Activity的布局设计和实现方法十分相似,都是在/res/layout目录中建立XML的布局资源文件
②定义Widget的元数据
Widget元数据文件保存在/res/xml/weather_widget_4x2.xml
③实现Widget的添加、删除、更新
实现Widget的添加、删除、更新等过程,主要是通过AppWidgetProvider类来实现,这个类本身继承BroadcastReceiver,用来接收与Widget相关的更新、删除、生效等消息。当AppWidgetProvider接收到这些消息以后,会分别调用相应的事件处理函数。
事件
调用函数
说明
ACTION_APPWIDGET_UPDATE
OnUpdate()
Widget更新
ACTION_APPWIDGET_DELETED
OnDelete()
Widget删除
ACTION_APPWIDGET_ENABLED
onEnabled()
Widget生效
ACTION_APPWIDGET_DISABLED
onDisabled()
Widget失效
④在AndroidManifest.xml文件中声明Widget
/AndroidManifest.xml
要让Widget生效还需在AndroidManifest.xml文件中进行声明,主要在该文件中声明AppWidgetProvider类
- 数据交互
1.利用API获取天气数据,数据获取地址:http://sixweather.3gpk.net/SixWeather.aspx?city=%E5%B9%BF%E5%B7%9E
获取天气的关键代码:
Com.yz.util/GetWeatherTask.java
向天气接口发送HTTP GET 请求
服务器返回XML文档,包含天气内容
- 自定定位城市
代码:请求定位权限
百度地图API
- 用户交互
设置城市(数据库读取过程)
Com.yz.app
Com.yz.db
- 系统管理
1. 页面实现布局管理
根据需求分析可知,该应用程序应包含四个主要的用户界面。显示界面中,应包含城市、温度和时间等信息;详细界面中,又包含了三个界面,分别为天气中心、温馨提示和气温曲线,这其中包含了当前以及后六天的天气预报,气温走势等信息;设置界面,主要是为了用户手动查询所需城市天气预报;分享界面提供了将天气预报信息分享出去的功能。
图片:
/res/layout/activit_weather_center.xml
分享途径 /assets/platforms.xml
2. 后台服务(唤醒设备时候更新)
- 数据库设计与实现(手工指定地点情况)
City.db->获取城市->天气API获取天气->处理->显示
六、程序模块设计
从这功能需求我们将整个程序分为了四个功能模块:
①程序启动
②用户界面
③后台服务
④数据库适配器
转载于:https://www.cnblogs.com/pdoge/p/7691927.html
Android天气预报设计相关推荐
- Android天气预报开发
Android天气预报开发(2) 在上节我们讲到了Android天气预报开发的数据该怎么获取,在看了上节的具体介绍,我们就知道了要从哪里拿数据,该如何拿数据?当拿到数据后我们就可以进行进一步的开发了. ...
- Android课程设计大作业-音乐播放器
Android课程设计大作业-音乐播放器 一.**主要实现界面效果** 1)登录界面 2)音乐列表界面 3)音乐播放界面 二.**系统设计** 1)使用Service播放音乐 2) 前台界面(Acti ...
- Android 天气预报源码
2019独角兽企业重金招聘Python工程师标准>>> 这是一个Android 天气预报的源码,有兴趣的可以看看! 关于天气的源码: 转载:http://www.adobex.com ...
- 谷歌正式推出官方“Android界面设计”网站
谷歌Android团队今天正式推出了官方的"Android界面设计"网站.该网站提供了大量用于Android程序界面开发的资料,包括一般界面设计指南.设计模式以及建筑模块等等.长期 ...
- android教程 - android ui 介绍,多图详解 “Android UI”设计官方教程
我们曾经给大家一个<MeeGo移动终端设备开发UI设计基础教程>,同时很多朋友都在寻找Android UI开发的教程,我们从Android的官方开发者博客找了一份幻灯片,介绍了一些Andr ...
- android ui秘笈,看图说话 – Android UI 设计秘笈 :Part I
Android 的官方开发者博客发了一份幻灯片,介绍了一些 Android UI 设计的小贴士,Roger 在这里以看图说话的形式发出来,有兴趣的读者就继续往下翻吧.整个 PPT 共分5个部分,Par ...
- Android RecyclerView设计通用Adapter
RecylerView 的使用频率现在也算做是很高了吧?使用起来的确是挺方便的,也容易实现一些比较好看的效果 一.一般步骤 一般的设计流程都是如下所示 首先是需要一个 JavaBean 来承载数据,包 ...
- Android Bander设计与实现 - 设计篇
摘要 Binder是Android系统进程间通信(IPC)方式之一.Linux已经拥有管道,system V IPC,socket等IPC手段,却还要倚赖Binder来实现进程间通信,说明Binder ...
- android产品设计,Android产品设计
Android产品设计,我们深信,凝聚一群人,用心在一件事上,为客户创造价值,它必将赢得客户的足够尊重和信赖. Android产品设计, 随着Android平台的扩张,引发了Android人才荒,20 ...
最新文章
- UDSMProt:蛋白质分类通用深度序列模型
- 【译】理解 JavaScript 中函数调用和 this
- 聊聊、Zookeeper 客户端 Curator
- iframe内嵌框架自适应高度
- WordPress七牛云镜像存储插件
- 系统集成项目管理视频课程
- Rstudio如何让显示界面的字体更大一些
- 怎样进入金蝶服务器修改参数,金蝶KIS专业版启用后如何后台修改系统参数
- android 软件调用c库,Android调用第三方C++算法库
- 聊聊新股市盈率的那些事
- 移植tslib,测试电容屏
- PHP常用字符串函数32个(个人总结)
- 汇编语言,and、or指令
- 以太网通信,UDP通信
- Python爬虫4.2 — ajax(动态网页数据抓取)用法教程
- Centos查看磁盘占用,管理磁盘空间
- 写一个函数insert,用来向一个动态链表插入节点。
- 威纶通触摸屏宏指令GetData和SetData函数的使用方法示例
- 求正数a的平方根的迭代公式为:xn+1=(xn+a/xn)/2。建立一个类SQRT,用来求某正数平方根的近似值。具体要求如下:
- 【转】程序员最喜欢的五大神器
热门文章
- winScp中文乱码设置
- 想办法解决window刷新的问题
- Kubernetes资源创建yml语法
- 软件工程第一次冲刺进度条(1-10天)
- Robotium双client測试框架
- SGU185 Two shortest(最小费用最大流/最大流)
- ios - Parse Issues in NSObjCRuntime, NSZone, and NSObject
- SpatialHadoop中空间索引系列之(四)空间格网索引实现
- latex中report目录_LaTeX目录格式控制
- 阿米洛键盘取消win_阿米洛花旦娘静电容V2键盘测评:不止是一把好看的键盘