工程源码下载连接:http://download.csdn.net/detail/sailor_luo/9883334

目录

1、前言2

2、需求分析2

3、系统设计

一、系统流程2

二、函数流程3

4、系统实现

一、实现分析4

二、函数分析4

三、具体代码实现5

5、实验结果分析7

6、实训过程与实训总结

一、实现分析10

二、函数分析10

三、具体代码实现10

7、参考文献11

8、附件(代码)11

1、前言

在手机网络天气预报的实现项目中实际运用eclipse所学到的知识的巩固内容。一方面拓展知识面一方面锻炼调试能力。知足手机网络天气预报的功能显示一周七天的天气温度。

1. 问题描述:绘制网络天气预报的气温折线图

2.开发(使用)工具:eclipse,tomcat8.5,UC浏览器

3.运行环境:android Development Tools中的虚拟机

4.数据要求:代码清晰明了,便于开发者读懂。界面条理清晰,系统必须具备安全性、可靠性、独立性。

2、需求分析

该程序使用eclipse平台实现一个天气温度显示功能,并画出折线图。从系统服务器中获取当天温度,在界面中显示折线图,并标出当前温度以及当前星期。

1.使用android类库中canvas和paint等绘制一条温度曲线,带有横纵坐标和获取温度值。

2.使用多线程进行界面刷新,每隔10s更新一次界面,而且设置随机函数,随机获取温度的值。

3.使用Tomcat搭建简单服务器,并设置随机数据,APP获取网络中的随机数据值(网页每十秒刷新一次),并在布局中显示气温折线图,使用LogCat中打印从网络获取的数据(包括当前时间和获取的七个温度参数)。

3、系统设计

1.系统流程

利用http中的client方式进行数据传输

2.函数流程

(1)把布局设为FrameLayout布局以显示气温折线图

(2)配置tomcat访问网络数据,使用httpclient发送get请求

1)建立HttpClient对象。

2)建立HttpGet对象。

3)若是须要发送请求参数,能够直接将要发送的参数链接到URL地址中,也能够调用HttpGet的setParams()方法来添加请求参数。

4)调用HttpClient对象的execute()方法发送请求。执行该方法将返回一个HttpResponse对象。

5)调用HttpResponse的getEntity()方法,可得到包含服务器的响应内容的HttpEntity对象,经过该对象能够获取服务器的响应内容。

(3)新建一个继承View的activity用paint类绘制气温折线图

(4)在MainActivity建立线程完成随机生成数据和休眠更新数据功能

Thread(Runnable runnable)

4、系统实现

1.实现分析:

(1)Android平台用户界面的实现

基于XML开发的Android用户可视化界面。XML文件放在工程/res/layout下面。这个目录可包含全部应用程序所需的代码部分。当要使用到这些资源时,在代码目录中打开R.java文件便可。在XML文件里编辑界面的代码,画出七天以内的天气变化折线图。并经过使用继承自View Group的Layout管理器来组织Android UI中的单个元素到屏幕上。

(2)更新画面

使用Random函数每隔10秒更新一次数据。

考虑到查询天气须要访问网络,查询返回的结果响应时间快慢每次不同,为了不形成界面主线程阻塞,因此采用多线程方式访问网络(并设置时间延迟),当线程执行完查询后,经过发Message方式通知界面上的控件进行更新数据,主线程经过Handler获知消息,而后执行更新界面控件内容。

(3)天气信息的获取

从Web Service提供商中提取天气预报的数据信息,为客户端服务。其基本功能是当用户运行天气预报系统程序时,在手机屏幕上显示将来一周内的天气预报。为此,须要解决的问题是手机终端从Web服务器获取了全部类型的数据以后,将这些数据进一步交给Android手机终端View组件,在手机界面上显示给客户。

2.函数分析:

(1)画图使用paint类和canvas类进行折线图的绘制,画笔的颜色以及笔触的宽度以及画布的设置。

(2)经过Thread类的构造方法建立线程,每隔10秒用random进行更新一下系统中的数据,让线程休眠10秒,在运用消息处理类handler对象的handleMessage()方法对其进行处理。

(3)联网服务器端进行系统更新,使用HttpClient访问网络。

1)建立httpclient对象:

HttpClient client=new DefaultHttpClient();

2)建立httpget对象,采用get方式:

HttpGet get=new HttpGet(target);

3)发送请求参数HttpResponse response;

4)调用httpclient对象的execute()方法发送请求

5)调用httpresponse的getStatusLine()得到服务器响应的内容

经过public void setVal(ArrayList val) {

// TODO Auto-generated method stub

for(int i=0;i

String ss=val.get(i);

tempval[i]=Integer.parseInt(ss);

}

}

将服务器中的更新数据与界面连接

3.具体函数实现:

(1)新建画图类继承View用paint类绘制气温折线图

protected void onDraw(Canvas canvas){

super.onDraw(canvas);

Paint paint= new Paint();

(2)每隔十秒更新一次气温数据,数据每次随机生成7个

休眠线程代码:

new Thread(new Runnable() {

public void run() {

while(true){

Thread.sleep(10000);

}

Hander类和message类主要代码:

handler =new Handler(){

public void handleMessage(Message msg) {

chartView.setVal( (ArrayList) msg.obj);

chartView.invalidate();

super.handleMessage(msg);

(4)下载配置tomcat,httpclient访问网络

访问网络实现

将须要访问的jsp放到配置好的tomcat文件夹下

添加访问权限:

5、实验结果分析

一、

二、界面显示

从服务器返回值,并进行显示。下图为虚拟机

第一次数据显示 第二次数据显示

此时打印logcat

android天气时钟课程设计报告,安卓课程设计报告--《基于网络返参的安卓天气预测分析》...相关推荐

  1. 安卓毕业设计app项目基于Uniapp+SSM实现的安卓的掌上校园系统食堂缴费图书馆预约

    目录 一.项目介绍 二.开题报告 三.截图 四.源码获取 一.项目介绍 计算机毕业设计安卓App毕设项目之ssm基于安卓的掌上校园系统-IT实战课堂_哔哩哔哩_bilibili计算机毕业设计安卓App ...

  2. 基于STM32与ESP8266的太空人WiFi天气时钟(代码开源)

    前言:本文为手把手教学ESP8266著名开源项目--太空人WiFi天气时钟,不同的是本次项目采用的是STM32作为MCU.两者开发过程中有因为各自芯片的特点(时钟频率,内存大小等),导致开发程序大不相 ...

  3. (转)架构风格与基于网络的软件架构设计(介绍REST)

    随着软件水平在国内的发展,中国程序员的水平也逐渐的在提高,从当年英雄式,到后来的软件作坊,现在越来越多的人开始关注软件架构设计,软件架构师培训也越来越火了,,甚至也有国人自己编著软件架构设计方面的书籍 ...

  4. 基于android的个人记账答辩ppt,基于android,app,安卓个人理财全套毕业论文,课程设计,ppt,答辩翻译开题报告...

    记账:该'记账工具'功能是为了方便日常生活使用,清清楚楚的记录您平时消费信息. 1.该功能可以根据每月的消费和输入情况绘制出消费和支出的走线图,让您一目了然的看到您每月的消费情况. 2.该功能首页的柱 ...

  5. c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序

    C语言课程设计报告模拟时钟转动程序 课程设计报告题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 导 教 师 ...

  6. c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc

    C语言课程设计报告模拟时钟转动程序 PAGE 课程设计报告 题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 ...

  7. 基于Android Studio的安卓课程设计(Keep运动软件)

    一.开发环境 1.系统环境:Windows.Mac等 2.集成开发环境:Android Studio.虚拟机版本为Android 7.0(Nexus 5 API 24型号) 数据库系统:Android ...

  8. android音乐播放器课程设计报告,基于android平台的音乐播放器的课程设计报告.docx...

    基于android平台的音乐播放器的课程设计报告 - PAGE - PAGE 17 - 吉 首 大 学 JISHOU UNIVERSITY <疯狂Android讲义>课程设计 报 告 书 ...

  9. android媒体播放器设计报告,基于Android的多媒體播放器课程设计报告.doc

    基于Android的多媒體播放器课程设计报告 基于Android的多媒体播放器课程设计报告 (2014-01-02 22:46:52) HYPERLINK "javascript:;&quo ...

最新文章

  1. 如何停止电脑正在运行的VBS程序?
  2. (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  3. Python生产环境部署(fastcgi,uwsgi)
  4. Java XML解析工具 JDOM介绍及使用实例
  5. python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例
  6. Hadoop入门(十三)远程提交wordCout程序到hadoop集群
  7. linux下spi有哪些函数,linux下怎么快速的使用 SPI 驱动。
  8. 二进制枚举子集 CS Maxor 或运算,DP(SOS)
  9. C++——C++11中的defalut和delete关键字
  10. mysql-之增删改查
  11. CSS 盒子模型(Box Model)
  12. Linux查看文件以及文件夹个数
  13. 您有一份来自阿里云达摩院的邀请函待查收!
  14. 如何使用简单的接入点扩展您的Wi-Fi网络
  15. sitemesh初步
  16. 专利与论文-5:《专利说明书》的撰写与注意事项
  17. 搜狗推送工具之泛站程序实现泛收录
  18. 关于修改思科WLC SSID
  19. python允许无止境的循环_python基础课程 第6章 循环(无尽的未来)
  20. 京东物流一体化供应链建设实践

热门文章

  1. 第四章 选择结构(二)
  2. linux环境下的TIME_WAIT和CLOSE_WAIT问题解决方法
  3. 【Python】一句话 if else 简洁写法
  4. no module named ‘cv2’解决办法
  5. Python画数码晶体管日期(年月日时分秒)
  6. JAVA基础之JDK、JRE、JVM关系
  7. Gstreamer之跨平台element(十六)
  8. adb devices报错:* daemon not running. starting it now on port 5037(端口未被占用)解决
  9. 视频编解码学习(六):YUV格式学习
  10. 树莓派之安装docker