Hello World 進階了 -- 版面設計
This document is provided as is. You are welcomed to use it for non-commercial purpose.Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
請勿轉貼
最近經常聽到的一句廣告台詞就是"人生進階了,XX也進階了";既然"進階"是一股風潮,之前說明的 Hello World 也要跟上腳步進階。這一次我們讓它變成一個互動式版的 Hello World。這個互動式版的 Hello World 功能如下:當執行程式,如下左邊的畫面會出現;若使用者在文字欄位內如畫面所示的輸入"eric",並按下"確定"按鈕之後,程式的執行結果將如以下右 邊的畫面出現"Hello eric"的對話視窗。
|
要寫出這麼簡單的程式必須了解三個主要的概念:使用 Eclipse +ADT 所提供的版面設計功能以及其對應的 XML 檔,新的 GUI
元件(如文字欄位等),以及 Android 的事件處理機制(如使用者按了按鈕之後,程式要如何處理)。在這份文件中,我們先說明版面的設計:
- 在 Android
的環境下,設計版面的方式有兩種;一種是直接把版面的設計寫死在程式碼中,例如之前文字加上時鐘的範例,因為這種方式的使用彈性較另一個方法低,一般不建
議這個設計方式;另一種就是利用 XML
檔來設計版面,這個檔案也就是 res/layout/main.xml。為了說明這個檔案的格式以及整個程式的開發,讓我
們執行 Eclispe 並產生一個名為 HelloName 的專案(記得先將之前的專案"全部關閉";即 File --> Close
All),然後在 Eclipse 畫面的左邊開啟 res/layout/main.xml 檔案,其畫面如下所示。
〔圖 2〕練習題:
- 請在圖 2 右邊紅色框框的 LinearLayout 上以滑鼠右鍵點擊,並仔細觀察它有多少選項可以選擇。目前先不要進行修改,等到慢慢熟悉環境了以後再說。
- 看得懂 XML 的人,在未來的說明中,也可以嘗試觀察修改前、後 XML 檔案內容的變化。
- 由於我們的目標在於產生如圖 1
左邊所示的畫面,所以再來需要在畫面上新增一個文字欄位。請將如下畫面左邊的紅色框框(即一般的文字欄位)拖曳至代表螢幕的黑色區塊,其結果如畫面所示。
- 畫面上的 GUI 元件都放好了,可是每個都不符合我們的需要;例如,TextView
的部分,我們希望顯示的是"請輸入你的姓名",因此我們可以在螢幕上的文字標籤上或者上圖右邊紅色框框內的 TextView
上按右鍵,其結果如以下畫面所示:
有讀者開始好奇為什麼選 "hello" 嗎?有好奇心是好現象,讓我們看一下 XML 檔案的內容(如下圖所示):
- 從畫面中可以看出,螢幕的字串確實改變了,可是這個跟圖 1
的效果也差太多了,第一個差別是字體太小需要改大,另一個差別是字體顏色需要改變。首先請在文字標籤上按右鍵然後在選項中選擇 "Edit
TextSize",然後在欄位內輸入 "32sp":
- 再來就是改變字體的顏色了。由於 Android 的設計方式,它把顏色也當成一種資源,因此改變字體的顏色基本上要做兩件事情:
第一就是確定需要的顏色資源存在;如果不存在,那麼我們就需要新增一個顏色資源,而每一個顏色資源就跟字串資源一樣,有一個
變數名稱。第二就是把顏色資源和文字標籤做結合。首先我們需要產生一個顏色資源,產生的方式是開啟 strings.xml,點選
"Add" 按鈕,然後在以下畫面中,選擇 "Color" 並按 "OK"。
- 從模擬的螢幕中可以看出,其實我們只剩下按鈕的設定了。按鈕的設定包含按鈕的標籤以及按鈕的其他微調。按鈕標籤的設定,基本上就是先
產生一個字串資源,該資源名稱假設是 "button",而其值是 "確定",然後把該資源與按鈕結合。由於這個過程跟之前的類似,請自行
製作。至於其他的微調,包含字體大小,請依照以下畫面所示設定,字體大小我們設定為 30px:
- 完成上述步驟,我們的版面如下所示。雖然你可以執行該程式,但是什麼也不會發生,這是因為缺少了處理事件(點選按鈕)的處理程式,
我們在下一篇在說明。
Written by: 國立中興大學資管系呂瑞麟 Eric Jui-Lin Lu
沒有留言:
張貼留言