03 Android应用界面编程
?
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類
所謂絕對布局,是指屏幕中所有控件擺放的控件位置由坐標來指定;
?
轉載于:https://www.cnblogs.com/thoughtInShare/p/4264459.html
總結
以上是生活随笔為你收集整理的03 Android应用界面编程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EasyUI datagrid : 启用
- 下一篇: WP8.1学习系列(第八章)——透视Pi