Android絕大部分UI組件都放在android.widget和android.view包及其子包,全部的UI組件都繼承了View類,ViewGroup則用於其餘組件的容器。java
XML屬性 android |
相關方法 緩存 |
說明 ide |
android:alpha | setAlpha(float) | 設置該組件的透明度 |
android:background | setBackgroundResource(int) | 設置該組件的背景顏色 |
android:clickable | setClickable(boolean) | 設置該組件是否能夠激發單擊事件 |
android:contentDescription | setContentDescription(CharSequence) | 設置該組件的主要描述信息 |
android:drawingCacheQuality | setDrawingCacheQuality(iint) | 設置該組件所使用的繪製緩存的質量 |
android:fadeScrollbars | setScrollbarFadingEnabled(boolean) | 當不使用該組件的滾動條時,是否淡出顯示滾動條 |
android:fadingEdge | setVerticalFadingEdgeEnabled(boolean) | 設置滾動該組件時組件邊界是否使用淡出效果 |
android:fadingEdgeLength | getVerticalFadingEdgeLength() | 設置淡出邊界的長度 |
android:focusable | setFocusable(boolean) | 設置組件是否能夠獲得焦點 |
android:focusableInTouchMode | setFocusableInTouchMode(boolean) | 設置該組件在觸摸模式下是否能夠獲得焦點 |
android:id | setId(int) | 設置該組件的惟一標識。Java代碼中能夠經過findViewById來獲取它 |
android:isScrollContainer | setScrollContainer(boolean) | 設置該組件是否做爲可滾動容器使用 |
android:keepScreenOn | setKeepScreenOn(boolean) | 設置該組件是否會強制手機屏幕一直打開 |
android:longClickable | setLongClickable(boolean) | 設置該組件是否能夠響應長單擊事件 |
android:minHeight | setMinimumHeight(int) | 設置該組件的最小高度 |
android:minWidth | setMinimumWidtht(int) | 設置該組件的最小寬度 |
android:nextFocusDown | SetNextFocusDownId(int) | 設置焦點在該組件上,且按向下鍵時得到焦點的組件ID |
android:nextFocusLeft | setNextFocusLeftId(int) | 設置焦點在該組件上,且按向左鍵時得到焦點的組件ID |
android:nextFocusRight | setNextFocusRightId(int) | 設置焦點在該組件上,且按向右鍵時得到焦點的組件ID |
android:nextFocusUp | setNextFocusUpId(int) | 設置焦點在該組件上,且按向上鍵時得到焦點的組件ID |
android:onClick | 爲該組件的單擊事件綁定監聽器 | |
android:padding | setPadding(int,int,int,int) | 在組件的四邊設置填充區域 |
android:paddingLeft | setPadding(int,int,int,int) | 在組件的左邊設置填充區域 |
android:paddingTop | setPadding(int,int,int,int) | 在組件的上邊設置填充區域 |
android:paddingRight | setPadding(int,int,int,int) | 在組件的右邊設置填充區域 |
android:paddingBottom | setPadding(int,int,int,int) | 在組件的下邊設置填充區域 |
android:rotation | setRotation(float) | 設置該組件旋轉的角度 |
android:rotationX | setRotationX(float) | 設置該組件繞X軸旋轉的角度 |
android:rotationY | setRotationY(float) | 設置該組件繞Y軸旋轉的角度 |
android:saveEnabled | setSaveEnabled(boolean) | 若是設置爲false,那當該組件被凍結時不會保存它的狀態 |
android:scaleX | setScaleX(float) | 設置該組件在水平方向的縮放比 |
android:scaleY | setScaleY(float) | 設置該組件在垂直方向的縮放比 |
android:scrollX | 該組件初始化後的水平滾動偏移 | |
android:scrollY | 該組件初始化後的垂直滾動偏移 | |
android:scrollbarAlwaysDrawHorizontalTrack | 設置該組件是否老是顯示水平滾動條的軌跡 | |
android:scrollbarAlwaysDrawVerticalTrack | 設置該組件是否老是顯示垂直滾動條的軌跡 | |
android:scrollbarDefaultDelayBeforeFade | setScrollbarDefaultDelayBeforeFade(int) | 設置滾動條在淡出隱藏以前延遲多少毫秒 |
android:scrollbarFadeDuration | setScrollbarFadeDuration(int) | 設置滾動條淡出隱藏過程須要多少秒 |
android:scrollbarSize | setScrollbarSize(int) | 設置垂直滾動條的寬度和水平滾動條的高度 |
android:scrollbarStyle | setScrollbarStyle(int) | 設置滾動條的風格和位置。該屬性支持以下屬性: insideOverlay insideInset OutsideOverlay OutsideInset |
android:scrollbarThumbHorizontal | 設置該組件的水平滾動條的滑塊對應的Drawable對象 | |
android:scrollbarThumbVertical | 設置該組件的垂直滾動條的滑塊對應的Drawable對象 | |
android:scrollbarTrackHorizontal | 設置該組件的水平滾動條的軌道對應的Drawable對象 | |
android:scrollbarTrackVertical | 設置該組件的垂直滾動條的軌道對應的Drawable對象 | |
android:scrollbars | 定義該組件滾動時顯示幾個滾動條,該屬性支持以下屬性值。 none:不顯示滾動條 horizont:顯示水平滾動條 vertical:顯示垂直滾動條 | |
android:soundEffectsEnabled | setSoundEffectsEnabled(boolean) | 設置該組件被單擊時是否使用音效 |
android:tag 佈局 |
爲該組件設置一個字符串類型的tag值。接下來可經過View的getTag()獲取該字符串,或經過findViewWithTag()查找該組件 | |
android:transformPivotX | setPivotX(float) | 設置該組件旋轉時旋轉中心的X座標 |
android:transformPivotY | setPivotY(float) | 設置該組件旋轉時旋轉中心的Y座標 |
android:translationX | setTranslationX(float) | 設置該組件在X方向上位移 |
android:translationY | setTranslationY(float) | 設置該組件在Y方向上位移 |
android: visibility | setVisibility(int) | 設置該組件是否可見 |
*Drawable是Android提供的一個抽象類,包含了大量的子類,能夠定製UI組件的背景等外觀。this
ViewGroup爲一個抽象類,實際上經過他的子類來做爲容器,例如各類佈局容器,其經過ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams兩個內部類來控制期子組件的分佈。spa
ViewGroup.LayoutParams兩個屬性code
XML屬性 orm |
說明 xml |
android:layout_height |
指定該子組件的佈局高度 |
android:layout_width | 指定該子組件的佈局寬度 |
他們都支持下面三個屬性值:fill_parent、match_parent、wrap_content
ViewGroup.MarginLayoutParams支持的屬性
XML屬性 |
方法 |
說明 |
android:layout_marginButton | setMargins(int,int,int,int) | 指定該子組件下邊的頁邊距 |
android:layout_marginLeft | ||
android:layout_marginRight | ||
android:layout_marginTop |
java代碼在Activity中顯示視圖:
setContentView(R.layout.<資源文件id>);
java代碼中訪問UI組件:
findViewBuId(R.id.<android.id屬性值>);
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); // 建立一個線性佈局管理器 LinearLayout layout = new LinearLayout(this); // 設置該Activity顯示layout super.setContentView(layout); layout.setOrientation(LinearLayout.VERTICAL); // 建立一個TextView final TextView show = new TextView(this); // 建立一個按鈕 Button bn = new Button(this); bn.setText("OK"); bn.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); //向layout容器中添加TextView layout.addView(show); //向Layout中添加按鈕 layout.addView(bn); //爲按鈕綁定一個事件監聽器 bn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO 自動生成的方法存根 show.setText("單擊成功"); } }); }
上面的this是一個Context對象,他表明訪問Android應用環境的全局信息的API。他自己是一個抽象類,Activity、Service都繼承了Context。
這種狀況下,習慣把變化小、行爲比較固定的組件放在XML佈局文件中管理,而那些變化多,行爲控制比較複雜的組件交給java代碼來管理。
當Android系統提供的Ui組件不足以知足項目需求是,咱們能夠經過繼承View來派生自定義組件。
首先定義一個繼承View基類的子類,而後重寫View類的一個或多個方法。