Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android學習路線(四)構建一個簡單的UI

Android學習路線(四)構建一個簡單的UI

編輯:關於Android編程

Android應用的圖形化用戶界面的構建使用的是ViewViewGroup 對象的層次嵌套。 View 對象通常是UI部件,例如 buttons 或者 text fields ,而 ViewGroup 是用來定義它的子布局如何排布的容器,它通常是不可見的,例如一個網格或者一個垂直的列表。

Android提供XML詞匯與View或者ViewGroup的子類的對應,這樣的話你就可以通過XML元素的層級嵌套來定義你的UI。

另一種布局

使用XML聲明UI比在運行時代碼中聲明更有用處可以在很多地方看出來,尤其是當你為不同的屏幕創建不同的布局時。例如你創建了兩個布局,然後告訴系統,其中一個是用於小尺寸的屏幕,另一個是用於大尺寸的屏幕。有關跟多的信息,請查看Supporting Different Devices。

\

圖 1. 插圖所示的是ViewGroup對象是如何分支布局並且包含其他的View對象

在這片課程中,你將會使用XML來創建一個包含text field和一個button的布局。在接下來的課程中你就會學習如何響應button的點擊事件,當按下button時將text field中的文字發送給另一個Activity。

創建一個線性布局


打開 在 res/layout 目錄下 fragment_main.xml 文件。

提示: 在Eclipse中,當你打開一個layout(布局)文件時,首先顯示的是布局的圖形編輯器。這是一個使用WYSIWYG工具來幫助你編輯界面的編輯器。在本次課程中,你將要學習如何直接使用XML來工作,所以點擊界面底部的 fragment_main.xml tab 來打開編輯器吧。

在你創建項目是選擇的 BlankActivity 模板中包含了 fragment_main.xml 文件,文件的內容有RelativeLayout 根布局和一個 TextView 子布局。

首先,刪除 元素,並且將 元素改為 。然後添加android:orientation 屬性,並將其值設置為 "horizontal"。就像下面這樣:


LinearLayout 是一個view group (ViewGroup 的子類) ,它的子布局會以水平或者垂直的方向線性布局,通過 android:orientation 屬性來指定。LinearLayout 的子布局將會按照XML文件中的順序在屏幕上展示。

另外兩個屬性,android:layout_widthandroid:layout_height,在所有的View中都需要設置,用來指定布局的寬度和高度。

由於LinearLayout 是根布局,需要通過將其高度設置為"match_parent"來讓它在整個屏幕范圍內可見。這個值聲明了此布局將會延展它的寬度或者高度來適應它的父布局。

有關更多的信息,請查看 Layout 向導。

添加一個Text Field


要創建一個用戶可編輯的text field,需要在 標簽內添加元素。

就像所有View 對象那樣,你必須定義某些XML屬性來指定EditText 對象的屬性。下面向你展示如何在 元素中來定義它:

    

關於資源對象

一個資源對象是與應用資源相關聯的簡單的唯一的integer類型的名字,例如一個bitmap,layout,string。

每一個資源都會在gen/R.java 文件中有相應的資源對象與其對應。你使用R類的那些對象名稱來引用你的資源,例如當你需要為android:hint 屬性指定一個字符串類型的值時。你還可以使用android:id 屬性隨意創建資源ID,這樣你就可以在其他的代碼中引用這個view。

SDK工具在你每次編譯應用時都會生成R.java文件。你一定不要手動修改此文件的內容。

更多資料,請查看Providing Resources。

關於這些屬性:

android:id
它為此view提供了一個唯一的標識,你可以在應用的代碼中直接引用它,例如讀取和操作這個對象(你將會在下篇課程中學到)。

當你要參照XML文件中其他的對象時,你需要使用(@) 。它的後面跟著資源的類型(本例中是id),一個斜槓,然後資源的名稱。

+這個符號只有在你第一次定義一個資源的ID時才需要加上。當你編譯你的應用的時候,SDK工具會通過這個ID名稱在gen/R.java文件中創建相應的資源ID來與EditText元素對應。一旦資源ID通過這種方式被定義好,其他引用這個ID不需要使用+號。查看右側的文字了解更多資源對象。

android:layout_width and android:layout_height
使用"wrap_content"指定view的大小會根據內容來適應, 用來代替直接指定view的大小。如果你希望使用"match_parent",那麼EditText 元素將會占滿整個屏幕,應為它會根據父布局LinearLayout來適應大小。跟多信息,請查看Layouts 向導。android:hint
這個屬性用於指定當text field為空時顯示的內容。最好使用"@string/edit_message" 這種引用方式來為其賦值,而不要直接在代碼中賦值。

提示: 這個字符類型和元素ID有相同的名稱。然而他們的類型不同,因此同樣的名稱不會沖突。

添加一個String資源


當你需要在UI中顯示文字的時候,你一定要為每個字符串設置為資源。字符串資源讓你把所有的UI上的文字都集中在一個地方管理,讓更新文字更簡單。這種方式在你為不同語言提供字符串定義時可以為不同的語言實現本地化(國際化)。

在默認情況下,你的項目包含一個字符串資源文件,在res/values/strings.xml下。添加一個字符串,名字為"edit_message" ,同時將其值設為"Enter a message" 。(你可以刪掉"hello_world" 了)

在這個文件中為你即將要添加的button添加一個“Send”的字符串。

strings.xml 應將像下面這樣:



    My First App
    Enter a message
    Send
    Settings
    MainActivity


添加一個Button


現在添加一個

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved