基于Android 平臺的智能手機訪問服務器的主要技術是數據交互方法?;贏ndroid 操作系統的天氣實況預報系統設計的核心是通過調用通信協議SOAP(Simple Object AccessProtocol)的接口,從Web Service 提供商中提取天氣預報的數據信息,為客戶端服務。其基本功能是當用戶運行天氣預報系統程序時,在手機屏幕上顯示出中國的城市名稱,用戶單擊任意一個城市名,可獲得該城市的天氣實況預報信息。用戶也可以輸入城市名稱,點擊查詢獲得天氣預報信息。CitiesWeather-Forecast 工程目錄結構及其源代碼文件如圖1所示。
![](/uploads/allimg/120118/113Q21J1-0.jpg)
?
2.1 Android平臺的用戶界面實現
Android 提供的可變化的用戶界面(UI)開發模塊是基于XML 文件的。這些XML 文件放在工程/res/layout 下面。這個目錄可包含所有應用程序所需的非碼部分,比如圖片、字符串、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 文件中主要是添加一些界面的布局設置,例如如下代碼:
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cityText"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/searchBtn"/>
上述代碼生成了一個Linearlayout,定義了一個EditText 和Button,并且設置了相關的參數。在Android 中,控件最重要的大小屬性是width/height,開發者可以指明控件的大小,控件的寬、高以及在屏幕中的顯示位置等,可以設定成為fill_parent 和wrap_content.另外,還可以設置相應的文本信息,并可通過android:text="@string/cityText"/>進行引用(string 文件存放在工程的res/values 中)。按照這種方法,還可以依據需要定義相應的布局控件,譬如定義用來呈現天氣實況信息的UI等。
評論