安卓课程设计报告--《基于网络返参的安卓天气预测分析》

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


目录
一、前言	2
二、需求分析	2
三、系统设计
1、系统流程	2
2、函数流程	3
四、系统实现
1、实现分析	4
2、函数分析	4
3、具体代码实现	5
五、实验结果分析	7
六、实训过程与实训总结
1、实现分析	10
2、函数分析	10
3、具体代码实现	10
七、参考文献	11
八、附件(代码)	11




一、	前言
在手机网络天气预报的实现项目中实际运用eclipse所学到的知识的巩固内容。一方面拓展知识面一方面锻炼调试能力。满足手机网络天气预报的功能显示一周七天的天气温度。
1.	 问题描述:绘制网络天气预报的气温折线图
2.	开发(使用)工具:eclipse,tomcat8.5,UC浏览器
3.	运行环境:android Development Tools中的虚拟机
4.	数据要求:代码清晰明了,便于开发者读懂。界面条理清晰,系统必须具有安全性、可靠性、独立性。
二、	需求分析
该程序使用eclipse平台实现一个天气温度显示功能,并画出折线图。从系统服务器中获取当天温度,在界面中显示折线图,并标出当前温度以及当前星期。
1.	使用android类库中canvas和paint等绘制一条温度曲线,带有横纵坐标和获取温度值。

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

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

三、	系统设计
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) 






四、	系统实现
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<String> val) {
		// TODO Auto-generated method stub
		for(int i=0;i<tempval.length;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<Integer>) msg.obj);
		chartView.invalidate();
		super.handleMessage(msg);
(4)	下载配置tomcat,httpclient访问网络
 
 
 

访问网络实现
 

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

添加访问权限:
 


五、	实验结果分析
1、
 
 
2、界面显示
 
从服务器返回值,并进行显示。下图为虚拟机
 
  

第一次数据显示                      第二次数据显示
       
此时打印logcat
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值