第3章 圖形用戶界面設計_第1頁
第3章 圖形用戶界面設計_第2頁
第3章 圖形用戶界面設計_第3頁
第3章 圖形用戶界面設計_第4頁
第3章 圖形用戶界面設計_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章圖形用戶界面設計

主要內容3.1用戶界面組件包widget3.2文本標簽TextView與按鈕Button3.2.1文本標簽TextView3.2.2按鈕Button及按鈕處理事件3.3文本編輯框EditText3.4Android布局管理3.5選項按鈕和進度條3.6圖像顯示ImageView3.7消息提示Toast3.8列表組件ListView和ListActivity3.9滑動抽屜組件SlidingDraw3.1用戶界面組件包widget

1、用戶界面組件包widgetAndroid系統(tǒng)的大多數(shù)用戶界面組件均放置在widget包中??梢暬M件說明Button按鈕CalendarView日歷視圖CheckBox復選框EditText可編輯的文本輸入框ImageView顯示圖像或圖標,并提供縮放、著色等各種圖像處理方法ListView列表框視圖MapView地圖視圖.RadioGroup單選按鈕組件Spinner下拉列表TextView文本標簽WebView網頁瀏覽器視圖Toast消息提示2、View類View是用戶界面組件的共同父類,幾乎所有的用戶界面組件都是繼承View類而實現(xiàn)的,如TextView、Button、EditText等。對View類及其子類的屬性進行設置,可以在布局文件XML中設置,也可以通過成員方法在Java代碼文件中動態(tài)設置。View類的常用屬性與方法屬性對應方法說明android:backgroundsetBackgroundColor(intcolor)設置背景顏色android:idsetId(int)為組件設置可通過findViewById方法獲取的標識符android:alphasetAlpha(float)設置透明度,取值[0,1]之間findViewById(intid)與id所對應的組件建立關聯(lián)android:visibilitysetVisibility(int)設置組件的可見性android:clickablesetClickable(boolean)設置組件是否響應單擊事件3.2文本標簽TextView

與按鈕Button

3.2.1文本標簽TextView文本標簽TextView用于顯示文本內容,是最常用的組件之一。方法功能getText();獲取文本標簽的文本內容setText(CharSequencetext);設置文本標簽的文本內容setTextSize(float);設置文本標簽的文本大小setTextColor(intcolor);設置文本標簽的文本顏色元素屬性說明android:id文本標簽標識android:layout_width文本標簽TextView的寬度,通常取值"fill_parent"(屏幕寬度)或以像素為單位pt的固定值android:layout_height文本標簽TextView的高度,通常取值"wrap_content"(文本的高)或以像素px為單位的固定值。android:text文本標簽TextView的文本內容android:textSize文本標簽TextView的文本大小文本標簽TextView常用的XML文件元素【例3-1】設計一個文本標簽組件程序。創(chuàng)建名稱為Ex03_01的新項目,包名為com.ex03_01。打開系統(tǒng)自動生成的項目框架,需要設計的文件為:(1)設計布局文件activity_main.xml;(2)設計控制文件MainActivity.java;(3)設計資源文件。(1)設計界面布局文件activity_main.xml在界面布局文件activity_main.xml中加入文本標簽組件TextView,設置文本標簽組件的id屬性。<!--設置文本標簽的屬性值--><TextViewandroid:id="@+id/textView1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/>在界面布局中設置文本標簽(2)設計控制文件MainActivity.java

在控制文件MainActivity.java源文件在添加文本標簽組件,并將布局文件中所定義的文本標簽元素屬性值賦值給文本標簽,與布局文件中文本標簽建立關聯(lián)。

(3)資源文件:strings.xml3.2.2按鈕Button及按鈕處理事件按鈕Button用于處理人機交互的事件,在一般應用程序中常常會用到。由于按鈕Button是文本標簽TextView的子類,按鈕Button繼承了文本標簽TextView所有的方法和屬性。其繼承關系如圖所示。按鈕Button在程序設計中最常用的方式是實現(xiàn)OnClickListener監(jiān)聽接口,當單擊按鈕時,通過OnClickListener監(jiān)聽接口觸發(fā)onClick()事件,實現(xiàn)用戶需要的功能。OnClickListener接口有一個onClick()方法,在按鈕Button實現(xiàn)OnClickListener接口時,一定要重寫這個方法。按鈕Button調用OnClickListener接口對象的方法如下:

按鈕對象.setOnClickListener(OnClickListener對象);【例3-2】編寫程序,當點擊按鈕命令后,頁面標題及文本組件的文字內容發(fā)生變化。(點擊按鈕前)(點擊按鈕后)創(chuàng)建名稱為Ex03_02的新項目,包名為com.ex03_02。(1)設計布局文件:activity_main.xml

在布局文件中添加一個按鈕,其id設置為button1。1<?xmlversion="1.0"encoding="utf-8"?>2<LinearLayoutxmlns:android="/apk/res/android"3android:layout_width="fill_parent"4android:layout_height="fill_parent"5android:orientation="vertical">6<TextView7android:id="@+id/textView1"8android:layout_width="fill_parent"9android:layout_height="wrap_content"10android:text="@string/hello"/>11<Button12android:id="@+id/button1"13android:layout_width="fill_parent"14android:layout_height="wrap_content"15android:text="@string/button"/>16</LinearLayout>(2)控制文件:Ex03_02Activity.java

在控制文件Ex03_02Activity.java中,設計一個實現(xiàn)按鈕監(jiān)聽接口的內部類mClick,當點擊按鈕時,觸發(fā)onClick()事件。

1packagecom.ex03_02;2importandroid.app.Activity;3importandroid.os.Bundle;4importandroid.view.View;5importandroid.view.View.OnClickListener;6importandroid.widget.TextView;7importandroid.widget.Button;89publicclassEx03_02ActivityextendsActivity10{11 privateTextViewtxt;12 privateButtonbtn;13publicvoidonCreate(BundlesavedInstanceState)14{15super.onCreate(savedInstanceState);16setContentView(R.layout.main);17txt=(TextView)findViewById(R.id.textView1);18btn=(Button)findViewById(R.id.button1);19btn.setOnClickListener(newmClick());20}21classmClickimplementsOnClickListener22{23 publicvoidonClick(Viewv)24 {25 Ex03_02Activity.this.setTitle("改變標題");26txt.setText(R.string.newStr);27}28}29}(3)資源文件:strings.xml1<?xmlversion="1.0"encoding="utf-8"?>2<resources>3<stringname="hello">HelloWorld,這是Ex03_02的界面!</string>4<stringname="app_name">Ex03_02</string>5<stringname="button">點擊我!</string>6<stringname="newStr">改變了文本標簽的內容</string>7</resources>【例3-3】編寫程序,點擊按鈕命令,改變文本組件的文字及背景顏色。如圖3.5所示。本例題涉及到顏色定義,Android系統(tǒng)在android.graphics.Color里定義了12種常見的顏色常數(shù),其顏色常數(shù)見表3-5。顏色常數(shù)十六進制數(shù)色碼意義Color.BLACK0xff000000黑色Color.BLUE0xff00ff00藍色Color.CYAN0xff00ffff青綠色Color.DKGRAY0xff444444灰黑色Color.GRAY0xff888888灰色Color.GREEN0xff0000ff綠色Color.LTGRAY0xffcccccc淺灰色Color.MAGENTA0xffff00ff紅紫色Color.RED0xffff0000紅色Color.TRANSPARENT0x00ffffff透明Color.WHITE0xffffffff白色Color.YELLOW0xffffff00黃色創(chuàng)建名稱為Ex03_03的新項目,包名為com.ex03_03。(1)設計布局文件main.xml

在XML文件中表示顏色的方法有多種:#RGB:用三位十六進制數(shù)分別表示紅、綠、藍顏色。#ARGB:用四位十六進制數(shù)分別表示透明度、紅、綠、藍顏色。#RRGGBB:用六位十六進制數(shù)分別表示紅、綠、藍顏色。#AARRGGBB:用八位十六進制數(shù)分別表示透明度、紅、綠、藍顏色。1<?xmlversion="1.0"encoding="utf-8"?>2<LinearLayoutxmlns:android="/apk/res/android"3android:layout_width="fill_parent"4android:layout_height="fill_parent"5android:background="#ff7f7c"6android:orientation="vertical">7<TextView8android:id="@+id/textView1"9android:layout_width="fill_parent"10android:layout_height="wrap_content"11android:textColor="#ff000000"12android:text="@string/hello"/>13<Button14android:id="@+id/button1"15android:layout_width="wrap_content"16android:layout_height="wrap_content"17android:text="@string/button"/>18</LinearLayout>采用八位十六進制數(shù)表示顏色(2)控制文件:Ex03_03Activity.java1packagecom.ex03_03;2importandroid.app.Activity;3importandroid.graphics.Color;4importandroid.os.Bundle;5importandroid.view.View;6importandroid.view.View.OnClickListener;7importandroid.widget.Button;8importandroid.widget.TextView;910publicclassEx03_03ActivityextendsActivity11{12/**Calledwhentheactivityisfirstcreated.*/13privateTextViewtxt;14privateButtonbtn;15 @Override16publicvoidonCreate(BundlesavedInstanceState)17{18super.onCreate(savedInstanceState);19setContentView(R.layout.main);20btn=(Button)findViewById(R.id.button1);21txt=(TextView)findViewById(R.id.textView1);22btn.setOnClickListener(newclick());23}定義實現(xiàn)監(jiān)聽接口的內部類注冊監(jiān)聽接口24 classclickimplementsOnClickListener25{26publicvoidonClick(Viewv)27{28intBLACK=0xffcccccc;29 txt.setText("改變了文字及背景顏色");30 txt.setTextColor(Color.YELLOW);31txt.setBackgroundColor(BLACK);32}33}34}采用顏色常數(shù)設置文字顏色設置文本標簽背景顏色(3)資源文件:strings.xml1<?xmlversion="1.0"encoding="utf-8"?>2<resources><stringname="hello">HelloWorld,MainActivity!</string>4<stringname="app_name">Ex03_03</string>5<stringname="button">點擊我,改變文字背景顏色</string>6</resources>3.3文本編輯框EditText

文本編輯框EditText用于接收用戶輸入的文本信息內容。文本編輯框EditText繼承于文本標簽TextView,其繼承關系如圖3.5所示。文本編輯框EditText主要繼承文本標簽TextView的方法,其常用的方法見表3-6。方法功能EditText(Contextcontext)構造方法,創(chuàng)建文本編輯框對象getText()獲取文本編輯框的文本內容setText(CharSequencetext)設置文本編輯框的文本內容文本編輯框EditText常用的XML文件元素

元素屬性說明android:editable設置是否可編輯,其值為“true”或“false”android:numeric設置TextView只能輸入數(shù)字,其參數(shù)默認值為假android:password設置密碼輸入,字符顯示為圓點,其值為“true”或“false”android:phoneNumber設置只能輸入電話號碼,其值為“true”或“false”定義框EditText元素的android:numeric屬性,其取值只能是下列常量(可由“|”連接多個常量):integer可以輸入數(shù)值.signed可以輸入帶符號的數(shù)值.decimal可以輸入帶小數(shù)點的數(shù)值.【例3-4】設計一個密碼驗證程序。如圖3.6所示。創(chuàng)建名稱為Ex03_04的新項目,包名為com.ex03_04。(1)設計布局文件activity_main.xml

在界面布局中,設置一個編輯框,用于輸入密碼,再設置一個按鈕,判斷密碼是否正確,設置兩個文本標簽,其中一個顯示提示信息“請輸入密碼”,另一個用于顯示密碼正確與否。1<?xmlversion="1.0"encoding="utf-8"?>2<LinearLayoutxmlns:android="/apk/res/android"3android:layout_width="fill_parent"4android:layout_height="fill_parent"5android:orientation="vertical">6<TextView7android:id="@+id/myTextView01"8android:layout_width="fill_parent"9android:layout_height="41px"10android:layout_x="33px"11android:layout_y="106px"12android:text="請輸入密碼:"13android:textSize="24sp"14/><!--建立一個EditText-->15<EditText16android:id="@+id/myEditText"17android:layout_width="180px"18android:layout_height="wrap_content"19android:layout_x="29px"20android:layout_y="33px"21android:inputType="text"22android:textSize="24sp"/><!--建立一個Button-->23<Button24android:id="@+id/myButton"25android:layout_width="100px"26android:layout_height="wrap_content"27android:text="確定"28android:textSize="24sp"29/><!--建立一個TextView-->30<TextView31android:id="@+id/myTextView02"32android:layout_width="180px"33android:layout_height="41px"34android:layout_x="33px"35android:layout_y="106px"36android:textSize="24sp"37/>38</LinearLayout>(2)設計控制文件MainActivity.java

在控制文件MainActivity.java中,主要是設計按鈕的監(jiān)聽事件,當單擊按鈕后,從文本編輯框中獲取輸入的文本內容,與密碼“abc123”進行比較。1packagecom.ex03_04;2importandroid.app.Activity;3importandroid.os.Bundle;4importandroid.view.View;5importandroid.view.View.OnClickListener;6importandroid.widget.EditText;7importandroid.widget.TextView;8importandroid.widget.Button;9publicclassMainActivityextendsActivity10{11 privateEditTextedit;12 privateTextViewtxt1,txt2;13 privateButtonmButton01;14@Override15publicvoidonCreate(BundlesavedInstanceState)16{17super.onCreate(savedInstanceState);18setContentView(R.layout.main);19txt1=(TextView)findViewById(R.id.myTextView01);20txt2=(TextView)findViewById(R.id.myTextView02);21edit=(EditText)findViewById(R.id.myEditText);22mButton01=(Button)findViewById(R.id.myButton);23mButton01.setOnClickListener(newmClick());24}定義實現(xiàn)監(jiān)聽接口的內部類25classmClickimplementsOnClickListener26{27 publicvoidonClick(Viewv)28 {29 Stringpasswd;30 passwd=edit.getText().toString();31 if(passwd.equals("abc123"))32 txt2.setText("歡迎進入快樂大本營!");33 else34 txt2.setText("非法用戶,請立刻離開!"); 35 }36}37}獲取文本編輯框中的文本內容equals()方法比較兩個字符串是否相等3.4Android布局管理

3.4Android布局管理Android系統(tǒng)的布局管理指的是在XML布局文件中設置組件的大小、間距、排列及對齊方式等。Android系統(tǒng)中常見的布局方式有5種,它們分別是:LinearLayout、FrameLayout、TableLayout、RelativeLayout、AbsoluteLayout。1、線性布局LinearLayout線性布局LinearLayout將組件按照水平或垂直方向排列。在XML布局文件中,由根元素LinearLayout來標識線性布局。在布局文件中,由“android:orientation”屬性來控制排列方向,其屬性值有水平(horizontal)和垂直(vertical)兩種:設置線性布局為水平方向android:orientation="horizontal"設置線性布局為垂直方向android:orientation="vertical"在布局文件中,由“android:gravity”屬性控制組件的對齊方式,其屬性值有上(top)、下(bottom)、左(letf)、右(right)、水平方向居中(center_horizontal)、垂直方向居中(center_vertical)。

【例3-5】線性布局應用示例。線性布局的核心代碼:線性布局的組件垂直排列<LinearLayoutandroid:orientation="vertical">或:線性布局的組件水平排列<LinearLayoutandroid:orientation="horizontal">2、幀布局FrameLayout幀布局FrameLayout是將組件放置到左上角位置,當添加多個組件時,后面的組件將遮蓋之前的組件。在XML布局文件中,由根元素FrameLayout來標識幀布局?!纠?-6】幀布局應用示例。(1)布局文件activity_main.xml<?xmlversion="1.0"encoding="utf-8"?><FrameLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><ImageViewandroid:id="@+id/mImageView"android:layout_width="60px"android:layout_height="wrap_content"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="快樂大本營"android:textSize="18sp"/></FrameLayout>(2)控制文件MainActivity.javapackagecom.ex03_06;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.ImageView;publicclassMainActivityextendsActivity{ImageViewimageview;@OverridepublicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageview=(ImageView)findViewById(R.id.mImageView);imageview.setImageResource(R.drawable.img);}}3、表格布局TableLayout表格布局TableLayout是將頁面劃分成行列構成的單元格。在XML布局文件中,由根元素TableLayout來標識表格布局。表格的列數(shù)由android:shrinkColumns定義,例如,android:shrinkColumns=“0,1,2”,即表格為3列,其列編號為第1、2、3列。表格的行由<TableRow></TableRow>定義。組件放置到哪一列,由android:layout_column指定列編號?!纠?-7】表格布局應用示例。設計一個3行4列的表格布局,組件安排如圖3.9所示。創(chuàng)建名稱為Ex03_07的新項目。生成項目框架后,將準備好的圖像文件img1.png、img2.png、img3.png、img4.png、img5.png復制到res\drawable-hdpi目錄下。(1)表格布局的布局文件activity_main.xml<?xmlversion="1.0"encoding="utf-8"?><TableLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent“><TableRow><!--第1行--><ImageViewandroid:id="@+id/mImageView1"android:layout_width="60px"android:layout_height="wrap_content"android:layout_column="0"/><ImageViewandroid:id="@+id/mImageView2"android:layout_width="60px"android:layout_height="wrap_content" android:layout_column="1"/></TableRow><TableRow><!--第2行--><ImageViewandroid:id="@+id/mImageView3"android:layout_width="60px"android:layout_height="wrap_content"android:layout_column="1"/> <ImageViewandroid:id="@+id/mImageView4"android:layout_width="60px"android:layout_height="wrap_content" android:layout_column="2"/></TableRow><TableRow><!--第3行--><ImageViewandroid:id="@+id/mImageView5"android:layout_width="60px"android:layout_height="wrap_content" android:layout_column="3"/> </TableRow></TableLayout>(2)控制文件Ex03_07Activity.javapackagecom.ex03_07;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.ImageView;publicclassEx03_07ActivityextendsActivity{ ImageViewimg1,img2,img3,img4,img5;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);img1=(ImageView)this.findViewById(R.id.mImageView1);img2=(ImageView)this.findViewById(R.id.mImageView2);img3=(ImageView)this.findViewById(R.id.mImageView3);img4=(ImageView)this.findViewById(R.id.mImageView4);img5=(ImageView)this.findViewById(R.id.mImageView5);img1.setImageResource(R.drawable.img1);img2.setImageResource(R.drawable.img2);img3.setImageResource(R.drawable.img3);img4.setImageResource(R.drawable.img4);img5.setImageResource(R.drawable.img5);

}}4、相對布局RelativeLayout相對布局RelativeLayout是采用相對其它組件的位置的布局方式。在相對布局中,通過指定ID關聯(lián)其他組件,與之右對齊、上下對齊或屏幕中央等方式來排列組件?!纠?-8】應用相對布局設計一個組件排列如圖3.10所示的應用程序。<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:id="@+id/label"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="24sp"android:text="相對布局"/><EditTextandroid:id="@+id/edit"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="@android:drawable/editbox_background"android:layout_below="@id/label"/><!--指定在文本標簽的下方--><Buttonandroid:id="@+id/ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below=“@id/edit“<!--指定在文本編輯框的下方-->android:layout_alignParentRight="true"android:layout_marginLeft="10dip"android:text="OK"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toLeftOf=“@id/ok”<!--指定在OK按鈕的左方-->android:layout_alignTop="@id/ok"android:text="Cancel"/></RelativeLayout>5、絕對布局AbsoluteLayout絕對布局AbsoluteLayout是在布局文件中指定組件在屏幕上的坐標位置。在XML布局文件中,由根元素AbsoluteLayout來標識絕對布局。坐標系統(tǒng):【例3-9】絕對布局示例。設一個文本標簽在屏幕的坐標為[40,150],修改布局文件main.xml如下:<?xmlversion="1.0"encoding="utf-8"?><AbsoluteLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_x="40dp"android:layout_y="120dp"android:text="@string/hello"/></AbsoluteLayout>>3.5選項按鈕和進度條3.5.1進度條進度條ProgressBar能以形象地圖示方式直觀顯示某個過程的進度。進度條ProgressBar的常用屬性和方法見表3-8。屬性方法功能android:maxsetMax(intmax)設置進度條的變化范圍為0~maxandroid:progresssetProgress(intprogress)設置進度條的當前值(初始值)incrementProgressBy(intdiff)進度條的變化步長值【例3-10】進度條應用示例。在界面設計中,安排一個進度條組件,并設置兩個按鈕,用于控制進度條的進度變化。程序設計步驟:(1)在布局文件中聲明ProgressBar。(2)在Activity中獲得ProgressBar實例。(3)調用ProgressBar的incrementProgressBy()方法增加和減少進度。(1)布局文件activity_main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text=""/><ProgressBarandroid:id="@+id/ProgressBar01"style="@android:style/Widget.ProgressBar.Horizontal"android:layout_width="250dp"android:layout_height="wrap_content"android:max="200"android:progress="50"></ProgressBar><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/btn1"/><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/btn2"/></LinearLayout>(2)事件處理文件MainActivity.javapackagecom.ex03_10;importandroid.app.Activity;。。。。publicclassEx03_10ActivityextendsActivity{ProgressBarprogressBar;Buttonbtn1,btn2;@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);progressBar=(ProgressBar)findViewById(R.id.ProgressBar01);btn1=(Button)findViewById(R.id.button1);btn2=(Button)findViewById(R.id.button2);btn1.setOnClickListener(newclick1());btn2.setOnClickListener(newclick2());}classclick1implementsOnClickListener{publicvoidonClick(Viewv){progressBar.incrementProgressBy(5);}}classclick2implementsOnClickListener{publicvoidonClick(Viewv){progressBar.incrementProgressBy(-5);}}}3.5.2選項按鈕1、復選按鈕CheckBox復選按鈕CheckBox用于多項選擇的情形,用戶可以一次性選擇多個選項。復選按鈕CheckBox是按鈕Button的子類,其屬性與方法繼承于按鈕Button。復選按鈕CheckBox常用方法見表3-9。方法功能isChecked()判斷選項是否被選中getText()獲取復選按鈕的文本內容【例3-11】復選按鈕應用示例。在界面設計中,安排3個復選按鈕和1個普通按鈕,選擇選項后,點擊按鈕,在文本標簽中顯示所選中的選項文本內容。如圖3.15所示。程序設計步驟:(1)在布局文件中聲明復選按鈕CheckBox。(2)在Activity中獲得復選按鈕CheckBox實例。(3)調用CheckBox的isChecked()方法判斷該選項是否被選中。如果選項被選中,則調用getText()方法獲取選項的文本內容。(程序代碼見教材)3.5.2選項按鈕2、單選組件RadioGroup與單選按鈕RadioButton單選組件RadioGroup用于多項選擇中只允許任選其中一項的情形。單選組件RadioGroup由一組單選按鈕RadioButton組成。單選按鈕RadioButton常用方法見表3-10。方法功能isChecked()判斷選項是否被選中getText()獲取單選按鈕的文本內容【例3-12】單選按鈕應用示例。在界面設計中,安排2個單選按鈕、1個文本編輯框和1個普通按鈕,選擇選項后,點擊按鈕,在文本標簽中顯示文本編輯框及所選中的選項文本內容。如圖所示。程序設計步驟:(1)在布局文件中聲明單選組件RadioGroup和單選按鈕RadioButton。。(2)在Activity中獲得單選按鈕RadioButton實例。(3)調用RadioButton的isChecked()方法判斷該選項是否被選中。如果選項被選中,則調用getText()方法獲取選項的文本內容。(程序代碼見教材)3.6圖像顯示ImageView與畫廊組件Gallery3.6.1圖像顯示ImageView類ImageView類用于顯示圖片或圖標等圖像資源,并提供圖像縮放及著色(渲染)等圖像處理功能。元素屬性對應方法說明android:maxHeightsetMaxHeight(int)為顯示圖像提供最大高度的可選參數(shù)。android:maxWidthsetMaxWidth(int)為顯示圖像提供最大寬度的可選參數(shù)。android:scaleTypesetScaleType(ImageView.ScaleType)控制圖像適合ImageView大小的顯示方式。(參見表3-12)android:srcsetImageResource(int)獲取圖像文件路徑ImageView類的常用方法ImageView類的scaleType屬性值(表3-12)scaleType屬性值常量值說明matrix0用矩陣來繪圖。fitXY1拉伸圖片(不按寬高比例)以填充View的寬高。fitStart2按比例拉伸圖片,拉伸后圖片的高度為View的高度,且顯示在View的左邊。

fitCenter3按比例拉伸圖片,拉伸后圖片的高度為View的高度,且顯示在View的中間。fitEnd4按比例拉伸圖片,拉伸后圖片的高度為View的高度,且顯示在View的右邊。center5按原圖大小顯示圖片,但圖片寬高大于View的寬高時,截圖圖片中間部分顯示。centerCrop6按比例放大原圖直至等于某邊View的寬高顯示。centerInside7當原圖寬高或等于View的寬高時,按原圖大小居中顯示;反之將原圖縮放至View的寬高居中顯示。程序設計步驟:(1)將事先準備好的多張圖片序列img1.jpg、img2.jpg、……、img6.jpg復制到資源/res/drawable-hdpi目錄下。(2)在布局文件中聲明圖像顯示組件ImageView。(3)在Activity中獲得相關組件實例。(4)通過觸發(fā)按鈕事件,調用OnClickListener接口的onClick()方法顯示圖像?!纠?-13】顯示圖片示例?!纠?-13】顯示圖片示例。在界面設計中,安排2個按鈕和1個圖像顯示組件ImageView,點擊按鈕,可以翻閱瀏覽圖片。【例3-13】的界面布局:外層線性布局嵌套兩個線性布局兩個水平排列按鈕內嵌ImageView組件(程序代碼見教材)3.6.2畫廊組件Gallery與

圖片切換器ImageSwitcherGallery類是Android中控制圖片展示的一個組件,它可以橫向顯示一列圖像。Gallery類經常與圖片切換器ImageSwitcher配合使用,用圖片切換器ImageSwitcher類展示圖片效果。使用ImageSwitcher時必須用ViewFactory接口的makeView()方法創(chuàng)建視圖?!纠?-14】畫廊展示圖片示例。在界面設計中,安排1個畫廊組件Gallery和1個圖片切換器ImageSwitcher,點擊畫廊中的小圖片,可以在圖片切換器中顯示放大的圖片。如圖3.19所示。程序設計步驟:(1)在布局文件中聲明畫廊組件Gallery和圖片切換器ImageSwitcher,采用表格布局。(2)把事先準備好的圖片文件img1.jpg、img2.jpg、......、img8.jpg復制到項目的資源目錄res\drawable-hdpi中,在Activity中創(chuàng)建一個圖像文件數(shù)組imgs[],其數(shù)組的元素為圖片文件。(3)在Activity中創(chuàng)建畫廊組件Gallery和圖片切換器ImageSwitcher組件的實例對象。(4)在Activity中創(chuàng)建一個實現(xiàn)ViewFactory接口的內部類,重寫makeView()方法建立imageView圖像視圖。圖片切換器ImageSwitcher通過該圖像視圖顯示放大的圖片。(5)在在Activity中創(chuàng)建一個BaseAdapter適配器子類的內部類,用于安排放在畫廊gallery中的圖片文件及顯示方式。(程序代碼見教材)3.7消息提示Toast在Android系統(tǒng)中,可以用Toast來顯示幫助或提示消息。該提示消息以浮于應用程序之上的形式顯示在屏幕上

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論