|
> 如何將介面升級(jí)到以XML方式來(lái)排板
在上一個(gè)章節(jié),我們所介紹的「Hello,Android!」專(zhuān)案是用開(kāi)發(fā)人員稱(chēng)之為程序化開(kāi)發(fā)的介面,也就是說(shuō)直接用程序碼來(lái)建構(gòu)使用者介面,但是,這樣的建構(gòu)介面的方式會(huì)發(fā)生許多問(wèn)題,而小小的排版變動(dòng)可能導(dǎo)致大部分的程序變更,最大的問(wèn)題是容易忘記的是如何把正確的介面顯示在螢?zāi)簧?,這可能導(dǎo)致發(fā)生錯(cuò)誤并浪費(fèi)時(shí)間除錯(cuò)。
這也是為什麼Android SDK會(huì)提供另一種介面的建立模式,使用XML排版檔案來(lái)記錄介面的資料,最簡(jiǎn)單了解的方法就是看下述的范例,下面的XML排版檔案內(nèi)容就是跟剛編譯的程序同樣的的排版建構(gòu):
代碼:
- <?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Hello,Android!"/>
復(fù)制代碼
在上述的XML檔案中的標(biāo)簽(Tag)可以自由使用,結(jié)構(gòu)也很簡(jiǎn)單,標(biāo)簽(Tag)的名稱(chēng)就是View物件的類(lèi)別名稱(chēng),在這個(gè)范例,標(biāo)簽(Tag)就只有一個(gè)「TextView」,開(kāi)發(fā)人類(lèi)可以使用任何繼承自View物件的類(lèi)別做為標(biāo)簽(Tag)名稱(chēng),包含一些開(kāi)發(fā)人員所做的類(lèi)別,這樣的結(jié)構(gòu)比較容易快速建立界面,比起開(kāi)發(fā)人員的程序碼要簡(jiǎn)單的多了,這樣的模式受到Web開(kāi)發(fā)的啟示,將參數(shù)從程序邏輯抽離只用來(lái)填入與取得資料。
在這個(gè)XML使用了一些屬性,大致說(shuō)明如下:
屬性:xmlns:android
說(shuō)明:名稱(chēng)空間宣告,讓Android工具參考Android名稱(chēng)空間的一般屬性,大部分的XML排版檔必須使用這個(gè)名稱(chēng)空間。
屬性:android:layout_width
說(shuō)明:這個(gè)屬性宣告View要占螢?zāi)欢嗌倏臻g,在這個(gè)例子,唯一的View要占用全部的螢?zāi)?,所以使用「fill_parent」這個(gè)參數(shù),就是填滿(mǎn)的意思。
屬性:android:layout_height
說(shuō)明:就像android:layout_width的屬性一樣,除了它是指螢?zāi)豢捎玫母叨取?nbsp;
屬性:android:text
說(shuō)明:設(shè)定TextView包含的文字屬性,這上述的范例中,就是設(shè)定成「Hello,Android!」
那麼這個(gè)XML檔案會(huì)放在那里呢?目前的設(shè)定是放到專(zhuān)案目錄下的res目錄底下的layout目錄,預(yù)設(shè)的檔案名稱(chēng)是main.xml。
下一步,打開(kāi)Package Explorer下原始碼目錄內(nèi)的R.java檔案,看起來(lái)的內(nèi)容如下所述:
代碼:
- public final class R {
public static final class attr {
};
public static final class drawable {
public static final int icon=0x7f020000;
};
public static final class layout {
public static final int main=0x7f030000;
};
public static final class string {
public static final int app_name=0x7f040000;
};
};
復(fù)制代碼
Android專(zhuān)案的R.java檔用來(lái)索引定義在這個(gè)檔案的內(nèi)里使用的資源,開(kāi)發(fā)人員可以在程序碼內(nèi)使用這個(gè)類(lèi)別來(lái)做為方便參考的索引記錄。
|
上一篇: 在Android中使用自定義圖片按鈕下一篇: Android程序設(shè)計(jì)(28)-如何將Eclipse中文化及方便的小工具DroidD
|