Android的界面顯示同樣也是基于控件的。通常是用View(包括ViewGroup)控件配上XML的樣式來做的。具體細節(jié)不想說了,可以參考
Samples里的ApiDemos/View,和View的Doc,以及Implementing a
UI這篇Doc。其他還有很多,感覺算是SDK講述的最多的內(nèi)容。 從控件的使用上,和網(wǎng)頁的設(shè)計類似,盡量用parent_width之類的抽象長度,用Theme來做風格,抽取所有的字串等信息做本地化設(shè)計。相關(guān)內(nèi)容參看Implementing a UI就好。 一 類比較重要的是數(shù)據(jù)綁定控件。如果做過ASP.Net會從中看到很多類似的地方。一個支持數(shù)據(jù)綁定的控件,比如ListView??梢酝ㄟ^一個 ListAdapter綁定到一個數(shù)據(jù)源上。ListAdapter是一個抽象類,主要的實現(xiàn)類包括SimpleAdapter和 SimpleCursorAdapter。前者是綁定一個靜態(tài)的Array,后者是綁定一個動態(tài)的Cursor。Cursor前面說過,是一個指向數(shù)據(jù)源 的隨機迭代器,將View綁定到Cursor通常要設(shè)置這樣幾個參數(shù)。一個是每一行的樣式,稱作Row Layout,其實就是一個普通的Layout的XML文件。還有就是一個列和現(xiàn)實控件的對應關(guān)系。那個控件顯示哪個列的值,這是需要配置的。為了定制一 個良好的數(shù)據(jù)顯示控件,最簡單你可以定制很PP的Row Layout,復雜一點就是可以重載綁定控件View,或者是適配器ListAdapter。如果是一個數(shù)據(jù)顯示密集的應用,且你對UI有些追求,這個工 作估計是必不可少的。 一個主要用于顯示數(shù)據(jù)內(nèi)容的Activity,可以選擇派生自ListActivity。它提供了一個具有ListView 的Layout,還有simple_list_item_1, simple_list_item_2, two_line_list_item等默認的Row Layout,還有一些比較不錯的API,和可供響應選擇Item的事件??梢詽M足你比較基礎(chǔ)的需求。如果你覺得只有一個ListView的界面太突兀, 你可以為這個ListActivity指定一個Layout,需要注意的是,你需要提供一個id為@android:id/list的ListView控 件,避免Activity在內(nèi)部偷偷尋找該控件的時候失敗。 除了這些要求,做好UI還有注意易用性和效率??旖萱I是一個比較不錯的選擇,在 Activity中調(diào)用setDefaultkeyMode(SHORTCUT_DEFAULT_KEYS),可以開啟快捷鍵模式,然后你可以將菜單綁定 到指定快捷鍵上就OK了。個人覺得Tip也是一個比較重要的東西,但目前觀察看來,這個東西只能夠自己提供了。界面的動態(tài)性有時候是不可避免的,比如說菜 單就是一個需要經(jīng)常根據(jù)光標位置提供不同的選項。這個東西Android很人道的考慮到了,你可以參看NodeList這個Sample。它采取的應該是 一個靜態(tài)模擬動態(tài)的方式,這樣有助于提高速度。你也可以利用ViewInflate,動態(tài)從一個XML創(chuàng)建一個控件。成本據(jù)Doc說很大,不到萬不得已不 要使用。 |
|