03 Android應用介面編程

來源:互聯網
上載者:User

標籤:

 

Android絕大部分UI組件都放在android.widget,android.view包及其子包,android應用中所以UI組件都繼承了View類,View代表一個空白的矩形地區;

android所有UI組件都建立在View和ViewGroup基礎之上的;View類是所有UI組件的基類,ViewGroup是一個抽象類別,通常使用其子類來作為容器;

View 類

 

View類為所有可視化控制項的基類,主要提供了控制項和事件處理的方法,比如TextView,Button,CheckBox等;

 

View類常見屬性及對應方法說明:

Android:background

SetBackgroundResource(int)

設定背景

 

Android:clickable

SetClickable(boolean)

設定View是否響應單擊事件

 

Android:visibility

SetVisibiltiy(int)

控制View的可見度

 

Android:focusable

SetFocusable(boolean)

控制View是否可以擷取焦點

 

Android:id

SetId(int)

為View設定標識符,可以通過findViewById方法擷取Id

 

Android:longClickable

SetLongClickable(boolean)

設定View是否響應長單擊事件

 

Android:soundEffectEabled

setSoundEffectsEnable(boolean)

設定View觸發單擊等事件是否播放音效

 

Android:saveEnable

SetSaveEnabled(boolean)

View凍結時是否儲存狀態

Android:nextFocusDown

SetNextFocusDownId(int)

定義向下擷取焦點的View

 

Android:nextFocusLeft

Android:nextFocusRight

Android:nextFocusUp

 

定義不同操作方向擷取焦點的View

 

任何繼承View的子類都擁有如上的屬性及方法;

 

ViewGroup類是View類的子類,但是可以充當其他控制項的容器,ViewGroup的子控制項既可以是普通的View,也可以是ViewGroup;

 

關於View和ViewGroup的關係

View是基類,ViewGroup是View的子類;

View代表使用者介面組件一塊可以繪製的空間塊;

每一個View在螢幕上佔據一個長方形地區,在這個地區,view負責映像繪製和事件處理;

View類是小控制項widgets和ViewGroup的父類;ViewGroup又是Layout的基類;

 

線性布局

提供控制項水平或豎直排列的模型;

Android:orientation

SetOrientation(int)設定線性布局的朝向;

Android:gravity

SetGrabity(int)設定線性布局內部元素的布局方式;

 

表格版面配置

TableLayout類以行和類的形式管理控制項,每行為一個TableRow對象,也可以為View對象,當為View對象時,該View對象將跨越該行的所有類;

 

在表格版面配置中,一個列的寬度由該列中最寬的那個單元指定,而表格的寬度由父容器指定;

在TableLayout中,可以為列設定如下3種屬性;

Shrinkable 如果一個列被標誌為Shrinkable,則該列的寬度可以進行收縮,以使表格能夠適應其父容器的大小;

Stretchable 如果一個列被標誌位Stretchable,則該列的寬度可以進行展開,以 填滿表格中閒置空間。

Collapsed,則該列會被隱藏;

 

TableLyout繼承LinearLayout類,TableLyout類特有的屬性和方法如下:

SetColumnCollapsed(int,boolean)

列號從0開始,設定指定列號的列為Collapsed

同樣,可以設定Shrinkable,Stretchable;

RelativeLayout

在相對布局中,子控制項的位置是相對兄弟控制項或父容器而決定的;

屬 性 名 稱

屬 性 說 明

android:layout_centerHorizontal

當前控制項位於父控制項的橫向中間位置

android:layout_centerVertical

當前控制項位於父控制項的縱向中間位置

android:layout_centerInParent

當前控制項位於父控制項的中央位置

android:layout_alignParentBottom

當前控制項底端與父控制項底端對齊

android:layout_alignParentLeft

當前控制項左側與父控制項左側對齊

android:layout_alignParentRight

當前控制項右側與父控制項右側對齊

android:layout_alignParentTop

當前控制項頂端與父控制項頂端對齊

android:layout_alignWithParentIfMissing

參照控制項不存在或不可見時參照父控制項

 接下來再來看屬性值為其他控制項id的屬性,如表3-6所示。

表3-6  相對布局中取值為其他控制項id的屬性及說明

屬 性 名 稱

屬 性 說 明

android:layout_toRightOf

使當前控制項位於給出id控制項的右側

android:layout_toLeftOf

使當前控制項位於給出id控制項的左側

android:layout_above

使當前控制項位於給出id控制項的上方

android:layout_below

使當前控制項位於給出id控制項的下方

android:layout_alignTop

使當前控制項的上邊界與給出id控制項的上邊界對齊

android:layout_alignBottom

使當前控制項的下邊界與給出id控制項的下邊界對齊

android:layout_alignLeft

使當前控制項的左邊界與給出id控制項的左邊界對齊

android:layout_alignRight

使當前控制項的右邊界與給出id控制項的右邊界對齊

 

最後要介紹的是屬性值以像素為單位的屬性及說明,如表3-7所示。

表3-7  相對布局中取值為像素的屬性及說明

 

屬 性 名 稱

屬 性 說 明

android:layout_marginLeft

當前控制項左側的留白

android:layout_marginRight

當前控制項右側的留白

android:layout_marginTop

當前控制項上方的留白

android:layout_marginBottom

當前控制項下方的留白

 

FrameLayout類

幀布局

FrameLayout幀布局在螢幕上開闢了一塊地區,在這塊地區中可以添加多個子控制項,但是所有的子控制項都被對齊到螢幕的左上方,幀布局的大小由子控制項中尺寸最大的那個子控制項來決定,如果子控制項一樣大,同一時刻只能看到最上面的子控制項;

 

FrameLayout繼承自ViewGroup,FrameLayout所特有的屬性和方法如下:

Android:foreground

SetForeground(Drawable)

設定繪製所有子控制項之上的內容

Android:foregroundGravity

SetForegroundGraviety(int)

設定繪製所有子控制項之上內容的gravity屬性

 

在FrameLayout中,子控制項是通過棧來繪製的,所以後添加的子控制項會被繪製在上層;

 

AbsoluteLayout類

所謂絕對布局,是指螢幕中所有控制項擺放的控制項位置由座標來指定;

 

03 Android應用介面編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.