基于Android智能手机天气预报系统设计及实现
这个目录可包含所有应用程序所需的非码部分,比如图片、字符串、xml 文件。当要使用到这些资源时,在代码目录中打开R.java文件即可。在XML 文件里编辑界面的代码,实现起来不仅方便,使用时也会更加灵活。
在Android 程序设计中要用到一些基本的Android UI 元素,通过使用Views、View Groups 和layouts 可为Activity 创建功能性的、富有直观力的UI.通常是使用Android SDK 中提供的一些控件,进行布局、扩展和定制这些控件,并使用ViewGroups 去组合Views,创建由相互作用的子控件组成的原子的、重复利用的UI 元素。也可以创建自己的Views,来实现显示数据和与用户交互的新途径;或使用一些继承自View Group 的Layout 管理器来组织Android UI中的单个元素到屏幕上。
在一个Android 应用中,用户界面由View 和View Group对象构建。View 与View Group 有很多种类,而它们都是View类的子类。View 对象是Android 平台中用户界面的基本单元。View 类是widgets(工具)类的父类,它们提供了诸如文本输入框和按钮之类的UI 对象的完整实现。View Group 类是Layouts(布局)类的父类,它们提供了诸如流式布局、表格布局以及相对布局之类的布局架构。
View 对象是一个数据体,它的属性存储了用于屏幕上一块矩形区域的布局参数及内容。并负责它所辖的这个矩形区域之中所有测量、布局、焦点转换、卷动以及按键/触摸手势的处理。作为一个用户界面对象,View 同时也担任着用户交互关键点以及交互事件接受者的角色。天气实况预报系统程序功能比较单一,其UI 也相对比较简单,只要有一个输入框、一个查询按钮以及一个显示所有中国城市信息的列表即可。为了建立Android 平台的用户界面,首先要在Package Explorer 窗口中展开Layout 后新建。xml 文件,用来对窗口界面进行布局,主要有系统运行的主配置文件main.xml 和result.xml.
Layout 是一类特殊的ViewGroup 控件,它们本身没有任何可显示内容,存在的惟一原因就是其中的内部结构,能够更好地摆放它的子控件。比如Linearlayout,可将子控件按水平或垂直方向按顺序排列下去;Tablelayout,可以将子控件按照表格的形式,一枚枚放置好;Relativelayout 更灵活,可以设定各个控件之间的对齐和排列关系,适合定制复杂的界面。有了Layout 的存在,控件和控件之间不再是割裂地存在,而是更有机地结合在一起,设定起来也更为方便。在本实例的main.xml 文件中主要是添加一些界面的布局设置,例如如下代码:
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<EditText android:id="@+id/cityText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cityText"/>
<Button android:id="@+id/searchBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/searchBtn"/>
</LinearLayout>
上述代码生成了一个Linearlayout,定义了一个EditText 和Button,并且设置了相关的参数。在Android 中,控件最重要的大小属性是width/height,开发者可以指明控件的大小,控件的宽、高以及在屏幕中的显示位置等,可以设定成为fill_parent 和wrap_content.另外,还可以设置相应的文本信息,并可通过android:text="@string/cityText"/>进行引用(string 文件存放在工程的res/values 中)。按照这种方法,还可以依据需要定义相应的布局控件,譬如定义用来呈现天气实况信息的UI等。
2.2 创建中国城市列表数据
根据天气预报系统功能需求分析,系统启动后,应在主界面上呈现出中国国内所有城市的列表数据,因此需要创建中国城市列表数据,包括获取、解析城市列表数据,并在用户界面上呈现出来。为此,需要解决的问题是手机终端从Web 服务器获取了所有类型的数据之后,将这些数据进一步交给Android 手机终端View 组件[4],在手机界面上显示给用户。
⑴ 获取城市列表数据
Android 没有提供Web Service 的组件库,但可以通过修改在PC 或J2ME 上使用的开源Web Service Java 库作为AndroidWeb Servic 库使用。kSOAP2(http://ksoap2.sourceforge.net)是一个在智能手机上的SOAP Web Service 客户端包,可用于资源受限制的Java 环境如Applets 或J2ME 应用程序。在GoogleCode 上有一个项目ksoap2-android(http://code.google.com/p/ksoap2-android/)可用在Android 平台上实现轻
- 智能手机简介(06-06)
- 关于智能型手机电源管理系统的设计与应用(09-28)
- 高通发布45纳米Snapdragon芯片组(05-07)
- 独立AP架构为智能手机设计增加自由度(05-07)
- 瑞芯推出三款多媒体智能手机芯片解决方案(05-22)
- 智能手机全键盘控制器及其编程(08-08)