新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Android用戶界面詳解

        Android用戶界面詳解

        作者: 時間:2016-10-08 來源:網絡 收藏

        這個章節描述怎么實現一個基本的Android界面。它涉及構建屏幕基本元素,怎么在xml(定義文件)內定義屏幕、用你的代碼生成、在不同任務你需要操作你的用戶接口。Android生成屏幕有三種方式:xml配置生成;通過你自己用戶界面接口生成;直接用代碼生成。根據MVC原則,UI應該與程序邏輯相分離,因此,在XML中定義UI結構是高度推薦的。此外,一個程序從一個屏幕方案調整到另一個也容易得多。在XML中定義UI跟創建一個普通的HTML文檔非常相似,例如,你有如下的一個文件:

        本文引用地址:http://www.104case.com/article/201610/305851.htm

        The content of the body element.

        就如Android的XML布局一樣,所有的元素都是結構化的,能夠通過樹形結構來表示:

        xmlns:android=http://schemas.android.com/apk/res/android

        android:orientation=vertical

        android:layout_width=fill_parent

        android:layout_height=fill_parent>

        android:layout_width=wrap_content

        android:layout_height=wrap_content

        android:text=Hello World/>

        3.2.1屏幕元素的層次

        Android應用程序的基礎功能單元就是Activity--android.app.Activity類中的一個對象。一個Activity可以做很多事,但是他自己并不會顯示到屏幕上。想要讓你的Activity顯示在屏幕上并且設計它的UI,你需要使用view和viewgroup--Android平臺基礎的用戶界面表達單元。

        Views

        一個view是一個android.view.View基礎類的對象。它是一個存儲有屏幕上特定的一個矩形內布局和內容屬性的數據結構。一個View對象處理測距和布局,繪圖,焦點變換,滾動條,還有屏幕區域自己表現的按鍵和手勢。

        View類作為一個基類,為widget(窗體部件)服務,widget--是一組用于繪制交互屏幕元素的完全實現子類。Widget處理它們自己的測距和繪圖,所以你可以更快速地用它們去構建你的UI。可用到的widget包括Text,EditText,InputMethod,Button,RadioButton,Checkbox,和ScrollView……。

        Viewgroups

        一個ViewGroup是一個android.view.Viewgroup類的對象。正如同它的名字表明的一樣,一個viewgroup是一個特殊的view對象,它的功能是去裝載和管理一組下層的view和其他viewgroup,Viewgroup讓你可以為你的UI增加結構并且將復雜的屏幕元素構建成一個獨立的實體。

        Viewgroup類作為一個基類為layout(布局)服務,layout--是一組提供屏幕界面通用類型的完全實現子類。layout讓你可以為一組view構建一個結構。

        一個樹形結構的界面

        在Android平臺上,你用view樹和viewgroup節點來定義一個Activity的UI,就如同下面圖表一樣。這個樹可以如你需要那樣簡單或者復雜,并且你可以使用Android的預定義widget和layout或者你自定義的view類型來構建它。

        一個view和viewgroup樹的樣例:

        Picture 4 Android UI - Tree structure

        要將屏幕綁定一個樹以便于渲染,你的Activity調用它的setContentView()方法并且傳遞一個參數給根節點對象。一旦Android系統獲得了根節點的參數,它就可以直接通過節點來無效化,測距和繪制樹。當你的Activity被激活并且獲得焦點時,系統會通知你的activity并且請求根節點去測距并繪制樹,根節點就會請求它的子節點去繪制它們自己,同時,每個樹上的viewgroup節點負責繪制它的直接子節點。

        正如之前提到的,每個view group都有測量它的有效空間,布局它的子對象,并且調用每個子對象的Draw()方法去繪制它們自己。子對象可能會請求獲得一個它們在父對象中的大小和位置,但是父對象對于每個子對象的大小和位置有最終的決定權。

        LayoutParams:一個子對象如何指定它的位置和大小

        每個viewgroup類都會使用一個繼承于Viewgroup.LayoutParams的嵌套類。這個子類包含了一系列的屬性類型,這些屬性類型定義一個子對象位置和大小,與view group類相適應。

        layoutparams的一個樣例:

        要注意的是,每個LayoutParams子類都有它自己賦值的語法。每個子元素必須定義適用于它們父對象的LayoutParams,盡管父對象可能會為子元素定義不同的LayoutParams。

        所有的viewgroup都包括寬和高。很多還包括邊界的定義(margin和border)。你可以非常精確地描述寬和高,盡管你并不想經常這么做。更多時候你希望你的view自行調整到適應內容大小,或者適應容器大小。

        Android 界面元素與Swing界面元素的比較

                  Android 界面元素


                  上一頁 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 下一頁

                  關鍵詞:

                  評論


                  相關推薦

                  技術專區

                  主站蜘蛛池模板: 张北县| 泰来县| 什邡市| 安徽省| 吉林省| 酒泉市| 河北区| 青海省| 微博| 旬邑县| 鸡泽县| 马鞍山市| 康马县| 丹凤县| 灵川县| 桑植县| 水富县| 礼泉县| 普安县| 惠东县| 溧阳市| 安图县| 科技| 龙胜| 钦州市| 柳林县| 青神县| 惠安县| 尼勒克县| 昌邑市| 五峰| 尤溪县| 陆丰市| 左权县| 长沙市| 宜州市| 金川县| 城固县| 个旧市| 武功县| 夏河县|