目標android
掌握視圖的概念。web
明白Activity與Widget的區別。
掌握XML方式佈局界面的特色和一些基本特性。
掌握幾種常見基本視圖的用法
學會使用代碼方式進行界面佈局的方法。
熟練掌握界面程序的事件驅動模型app
視圖(View)是可視化的界面元素,任何可視化組件都須要從android.view.View類繼承,視圖類一般分3種:佈局類、視圖容器類和基礎視圖類。以下圖:ide
視圖(View)是可視化的界面元素,視圖對象能夠單個組件或者不少組件的組合,能夠經過XML來建立視圖對象。代碼以下:
佈局
<LinearLayout android:orientation=「vertical」android:layout_width=「fill_parent」android:laout_height=「fill_parent」><TextView android:id="@+id/text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello, I am a TextView"/><Button … /></LinearLayout>
下表列出了View類的一些經常使用屬性和方法
url
XML屬性 說明
spa
android:padding 爲組件的四邊設置填充區域orm
android:scrollbars 定義該組件滾動時顯示幾個滾動條。該屬性支持以下屬性值。xml
none: 不顯示滾動條對象
horizontal: 顯示水平滾動條
vertical: 顯示垂直滾動條
android:tag 爲該組件設置一個字符串類型的tag值。接下來可經過View的getTag()獲取該字符串,或經過findViewWithTag()查詢該組件
android:visibility 設置該組件是否可見,該屬性取值有3個:
visible: 可見
invisible: 不可見
gone: 隱藏
用於設定組件大小相關的屬性
每個視圖都須要定義android:layout_width和android:layout_height,其值能夠有以下幾種狀況,能夠指定確切的大小:
wrap_content:表示有視圖的內容決定大小
fill_parent(Level8以後更名爲match_parent)表示與父容器同樣大
設置組件填充父容器時存在兩種方式
內填充的部分存在於組件空間內,至關於頁邊距的效果
padding——用於設置四邊的內邊距
paddingLeft、paddingRight、paddingTop、paddingBottom
外填充的部分存在與組件空間外,相似於邊界的間隔
margin——用於設置四邊的外部間距
marginLeft、marginRight、marginTop、marginBottom
視圖與Widget(微件)的區別是:View是可視化的組件元素,Widget實際上是一個迷你的Application,View能夠存在於Widget中,View能夠認爲是界面的更加基本的元素。
使用XML佈局視圖
XML佈局文件是Android系統中定義視圖的經常使用方法,文件必須保存在res/layout目錄中,XML佈局文件的擴展名必須是xml,XML的文件名必須符合Java的變量命名規則,每個佈局文件的根節點能夠是任意的組件,佈局文件的根節點必須包含android命名空間,組件標籤須要使用「@+id/stringvalue」指定ID,ID值的必須符合Java的變量命名規範。
xmlns:android=「http://schemas.android.com/apk/res/android」
<TextView android:id=「@+id/textview1」 …>
XML佈局文件示例
<?xml version=「1.0」 encoding=「utf-8」?><LinearLayout xmlns:android=「http://schemas.android.com/apk/res/android」android:orientation=「vertical」 android:layout_width=「fill_parent」android:layout_height=「fill_parent」><TextView android:id=「@+id/textview1」 android:layout_width=「fill_parent」android:layout_height=「wrap_content」 android:text=「textview1」 /><Button android:id=「@+id/button1」 android:layout_width=「wrap_content」android:layout_height=「wrap_content」 android:text=「ok」 /></LinearLayout>
在Activity中使用XML佈局
經過調用setContentView()方法在代碼中使用XML佈局
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
經過調用findViewById()方法在代碼中控制視圖
TextView textView1 = (TextView)findViewById(R.id.textview1);
textView1.setText(「新的字符串內容」);
二:基本視圖
文本控件——TextView,顯示文本信息,顯示基本文本。
<TextView android:id=「@+id/textview1」 android:layout_width=「fill_parent」android:layout_height=「wrap_content」 android:text=「我是文本控件」 />
顯示覆雜文本
<TextView android:id=「@+id/textview1」 android:layout_width=「fill_parent」android:layout_height=「wrap_content」 android:text=「我是文本控件」android:textSize=「20dp」 android:textColor=「#FF0000」android:background=「#FFFFFF」 android:padding=「30dp」android:layout_margin=「30dp」/>
顯示URL信息,經過指定android:autoLink屬性來自動識別URL內容,none 不匹配任何連接(默認值),web 匹配web地址,email 匹配Email地址,phone 匹配電話號碼。
示例
<TextView android:id=「@+id/urlview」 android:layout_width=「fill_parent」android:layout_height=「wrap_content」 android:link=「email」 />
TextView urlView = (TextView)findViewById(R.id.urlview);urlView.setText(「電子郵件:testandroid@csg.com」);
編輯框----EditText
EditText繼承自TextView,能夠接受用戶輸入,並能夠設置輸入的數據類型。
屬性inputtype,能夠限定輸入數據的類型,如下是經常使用的設置類型:
text:可輸入全部字符
textUri: 可輸入網址
textEmailAddress:可輸入電子郵件
textPassword:可輸入密碼
number:可輸入0^9的數字
date:可輸入日期(0-九、」/」)
time:可輸入時間(0-九、「: pam」)
phone:可輸入電話號碼
按鈕控件——Button
普通按鈕控件的示例
<Button android:id=「@+id/okbtn」 android:layout_width=「wrap_content」android:layout_height=「wrap_content」 android:text=「我是按鈕」 />