版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 第三章 基本控件和事件處理第1頁,共22頁。目錄基本控件概述Android基本的控件總結(jié)Android事件處理第2頁,共22頁。一、基本控件概述Android應(yīng)用開發(fā)是一個基于圖形用戶界面(Graphical User Interface,簡稱 GUI)的開發(fā),為了達(dá)到用戶滿意的界面,最后通過點(diǎn)擊相關(guān)圖形界面,就能很好的操作這個應(yīng)用,所以程序員設(shè)計的應(yīng)用程序必須以用戶友好性為前提。Android提供了大量功能強(qiáng)大的UI組件,并且這些組件配合使用事件響應(yīng)機(jī)制,能完成用戶點(diǎn)擊后的相關(guān)動作行為,這些組件我們就稱為控件。第3頁,共22頁。關(guān)于View類的屬性 View類常用的XML屬性屬性方法含義a
2、ndroid:backgroundsetBackgroudResource(int)設(shè)置背景android:clickablesetClikable(boolean)設(shè)置View是否響應(yīng)單擊事件android:visiblesetVisible(int)控制View的可 見性android:focusablesetFocuable(boolean)控件View是否可以獲取焦點(diǎn)android:idsetId(int)為View設(shè)置標(biāo)識符,可通過findViewById方法獲取二、Android基本的控件所有可視控件都繼承View類屬性。表3-1 View常用的屬性第4頁,共22頁。ViewGro
3、upViewGroup(視圖組)是android.view.Viewgroup的一個實(shí)例,是一特殊類型的視圖,可以視為View的容器。ViewGroup的子控件既可以是View類,也可以是ViewGroup類。使用ViewGroup可以創(chuàng)建比較復(fù)雜的界面元素。第5頁,共22頁。TextView類常用的屬性TextView屬性方法含義android:textsetText(charSequence)設(shè)置TextView顯示文本的內(nèi)容android:textSizesetTextSize(float)設(shè)置TextView的文本大小android:textColorsetTextColor(Colo
4、rStateList)設(shè)置TextView的文本顏色android:textStylesetTextStyle(TextStyle)設(shè)置TextView的文本風(fēng)格(如粗體、斜體)android:gravitysetGravity(int)設(shè)置TextView在文本框內(nèi)文本的對齊方式android:linessetLines(int)設(shè)置TextView最多占幾行android:heightsetHeight(int)設(shè)置TextView的高度,以像素為單位android:widthsetWidth(int)設(shè)置TextView的寬度,以像素為單位android:paddingSetPaddin
5、g(int)設(shè)置TextView中顯示文本與其父容器邊界的間距表3-2 TextView常用屬性第6頁,共22頁。以上屬性的區(qū)別android:padding與android:layout_margin的區(qū)別 Padding是以父View為參考點(diǎn),規(guī)定它里面的內(nèi)容與這個父View邊界的距離。layout_margin是以自己為參考點(diǎn),規(guī)定自己和其它(上下左右)的View之間的距離,如果在當(dāng)前這一級只有一個View,那它設(shè)置的效果就和Padding一樣。android:gravity與android:layout_gravity的區(qū)別gravity用于設(shè)置這個View內(nèi)所有子元素的對齊方式;la
6、yout_gravity用于設(shè)置這個View在父容器中的對齊方式。特別說明:TextView的屬性之a(chǎn)ndroid:textSize設(shè)置標(biāo)簽中字體的大小,它一般以單位sp來表示字體大小單位。第7頁,共22頁?!纠?3.1】設(shè)計如圖 3-1所示的布局文件。 圖3-1 Text Viewde 效果1 /結(jié)束標(biāo)志 第8頁,共22頁。Button控件按鈕 Button 繼承了 TextView,其主要的作用是在界面上生成一個按鈕,當(dāng)需要用戶點(diǎn)擊界面某個區(qū)域來產(chǎn)生特定的行為時,就可以使用 Button。用戶點(diǎn)擊這個按鈕后將會觸發(fā)一個 onClick事件,還要為按鈕添加 setOnClickListene
7、r()方法才能真正實(shí)現(xiàn)完整的事件監(jiān)聽。在JAVA文件中進(jìn)行編寫關(guān)聯(lián)。 Button 控件位于 Android.widget.Button 類中,如果 Java 代碼中使用這個控件,需要在頭部添加“import android.widget.Button;”語句 。第9頁,共22頁。EditText EditText(輸入框)可以向用戶顯示文本內(nèi)容,也允許用戶對文本內(nèi)容進(jìn)行編輯,它為TextView的子類,擁有TextView所有屬性。最主要用途是用戶登錄界面,如用戶名與密碼等信息的輸入。EditText定義位于Android.widget. EditText類中,如果Java代碼中使用這個控件
8、,需要的頭部添加“import android.widget. EditText;”。EditText特有屬性:android:digits:指定字段只接受某些字符;android:hint:輸入為空時給的提示;android:inputType:限定輸入的字符類型;android:singleLine:控制字段是單行輸入框還是多行輸入框(換句話說,按回車鍵是將焦點(diǎn)移到下一個部件,還是換行)。 第10頁,共22頁。ImageViewImageView類常用的屬性屬性方法含義android:adjustViewBoundssetAdjustViewBounds(boolean)是否保持圖片的寬高
9、比android:maxHeightsetMaxHeight(int)設(shè)置View的最大高度android:maxWidthsetMaxWidth(int)設(shè)置View的最大寬度android:srcsetImageResource(int)設(shè)置View的drawable(如圖片,也可以是顏色,但是需要指定View的大?。゛ndroid:scaleTypesetScaleType(ImageView.ScaleType)調(diào)整或移動圖片來適應(yīng)ImageView的尺寸,當(dāng)scaleType 取值為fitXY時拉伸圖片(不按比例)以填充View的寬高;當(dāng)scaleType取值為Center時按原圖大
10、小居中顯示;當(dāng)scaleType取值為centerCrop時按比例擴(kuò)大圖片居中顯示;當(dāng)scaleType取值為fitCenter時把圖片按比例擴(kuò)大/縮小到View的寬度并居中顯示。表3-3 ImageView常用屬性 第11頁,共22頁。CheckBox(復(fù)選框) 方法含義isChecked()判斷是否被選中,如選中則為true,否則為false。setChecked (boolean checked)通過傳參來改變控件的狀態(tài)。performClick()使用代碼主動去調(diào)用控件的點(diǎn)擊事件。toggle()取反控件選中的狀態(tài),即原來是選中則返回未選中,原來未選中則返回選中。setOnChecke
11、dChangeListener(CompoundButton.OnCheckedChangeListener listener)為控件添加OnCheckedChangeListener監(jiān)聽器。CheckBox常用方法表3-4 CheckBox常用屬性 第12頁,共22頁。RadioButton和RadioGroup RadioButton與CheckBox不同的,在于一組CheckBox可以一次選中多個,而RadioButton只能選中其中一個,所以RadioButton通常要與RadioGroup一起使用,用于定義一組單選按鈕。如下圖所示:圖3-2 一個RadioButton效果第13頁,共
12、22頁。 DatePicker(日期控件)DatePicker常用方法 方法含義getYear()獲取當(dāng)前日期的年getMonth()獲取當(dāng)前日期的月getDayOfMonth ()獲取當(dāng)前日期的日setMaxDate(long maxDate)設(shè)置最大日期setMinDate(long minDate)設(shè)置最小日期updateDate(int year,int month,int dayOfMonth)更新當(dāng)前日期init(int year,int monthOfYear,int dayOfMonth,DatePicker.OnDateChangedListener onDateChange
13、dListener);初始化日期,以onDateChangedListener為監(jiān)聽器對象,監(jiān)聽日期的變化表3-5 DatePicker常用方法第14頁,共22頁。 TimePicker(時間控件)TimePicker常用方法 方法含義getCurrentHour()獲取當(dāng)前時間的小時getCurrentMinute()獲取當(dāng)前時間的分鐘is24HourView()獲取是否為24小時模式setCurrentHour(Integer currentHour)設(shè)置當(dāng)前時間的小時setCurrentMinute(Integer currentMinute)設(shè)置當(dāng)前時間的分鐘setIs24HourVi
14、ew(Boolean is24HourView)設(shè)置24小時模式setEnabled(Boolean enabled)設(shè)置時間控件是否可用setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTimeChangedListener)為時間控件添加OnTimeChangedListener監(jiān)聽器表3-6 TimePicker常用方法第15頁,共22頁。三、Android事件處理 基于回調(diào)的事件處理 對于回調(diào)的事件處理,主要的實(shí)現(xiàn)方法是通過重寫Android中特定組件的回調(diào)方法和Android中Activity的回調(diào)方法?;诒O(jiān)聽的
15、事件處理 對于監(jiān)聽的事件處理,主要的實(shí)現(xiàn)方法是為Android界面上的控件綁定特定的事件監(jiān)聽器,為程序員處理各種邏輯操作。一般情況下,基于回調(diào)的事件處理用于處理一些具有普遍性的事件;有些操作在無法基于回調(diào)的事件處理時,就要使用基于監(jiān)聽的事件處理。第16頁,共22頁?;诨卣{(diào)的事件處理 onKeyDown()方法聲明格式:boolean onKeyUp(int keyCode,KeyEvent event) onKeyUp()方法聲明格式:boolean onKeyUp (int keyCode,KeyEvent event) onTouchEvent ()方法聲明格式:public boole
16、an onTouchEvent (MotionEvent event)【例 3.7】在屏幕區(qū)域內(nèi)捕獲用戶的觸擊、抬起與滑動事件,并記錄相關(guān)事件的坐標(biāo)。 在 res/layout 目錄下的布局xml文件中編寫代碼。在 src/com.hzu.touch_activity 目錄下的java文件中編寫代碼。圖3-3屏幕區(qū)域內(nèi)捕獲用戶操作第17頁,共22頁?;诒O(jiān)聽的事件處理 EventSource(事件源):產(chǎn)生這個事件的組件即事件發(fā)生的來源,如按鈕、窗口等。Event(事件):UI上面的事件源發(fā)生的特定的事件,并且該事件封裝了該操作的相關(guān)信息,當(dāng)應(yīng)用程序需要知道事件源上所發(fā)生事件的具體信息,一般都
17、是由Event對象來取得,如用戶觸摸屏幕的位置等。EventListener(事件監(jiān)聽器):監(jiān)聽事件源發(fā)生的事件,并對被監(jiān)聽的事件做出相應(yīng)的響應(yīng)。一個事件監(jiān)聽器可包含多個事件處理器,每一個事件處理器就是一個事件處理方法。第18頁,共22頁。應(yīng)用程序中實(shí)現(xiàn)監(jiān)聽器的四種形式匿名內(nèi)部類實(shí)現(xiàn):使用匿名內(nèi)部類創(chuàng)建事件監(jiān)聽器。外部類實(shí)現(xiàn):將外部類實(shí)現(xiàn)事件監(jiān)聽器接口。內(nèi)部類實(shí)現(xiàn):將事件監(jiān)聽器類定義為當(dāng)前類中。使用標(biāo)簽實(shí)現(xiàn):直接在布局文件中指定標(biāo)簽綁定事件處理方法,主要是在布局文件中使用android:onClick來實(shí)現(xiàn)?!纠?3.8】實(shí)現(xiàn)一個簡單的文字處理器,其可以改變文字背景、文字樣式,且具有更改文字、擦除文字的功能。 圖3-4 簡單的文字處理器第19頁,共22頁。監(jiān)聽器四種形式的優(yōu)缺點(diǎn)內(nèi)部類形式:可以在當(dāng)前類中復(fù)用該監(jiān)聽器類,即多個事件源可以注冊同一個監(jiān)聽器;可以自由訪問外部類的所有界面控件,內(nèi)部類實(shí)質(zhì)上是外部類的成員。 外部類形式:不能自由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年中國電建集團(tuán)江西省水電工程局有限公司招聘備考題庫及參考答案詳解
- 2026年廣東煤炭地質(zhì)二0一勘探隊(duì)招聘備考題庫有答案詳解
- 2026年太原太航德克森自控工程股份有限公司招聘備考題庫及一套參考答案詳解
- 2026年廣州國投悅康美邸養(yǎng)老服務(wù)有限公司招聘備考題庫及1套完整答案詳解
- 2026年北京京糖酒類經(jīng)營有限公司招聘備考題庫及一套參考答案詳解
- 2026年廈門科方圓工貿(mào)有限公司招聘備考題庫及完整答案詳解一套
- 2026年北京機(jī)械工業(yè)自動化研究所有限公司招聘備考題庫及參考答案詳解
- 2026年太倉市第一人民醫(yī)院第一批事業(yè)編制公開招聘專業(yè)技術(shù)人員16人備考題庫含答案詳解
- 2026年平潭綜合實(shí)驗(yàn)區(qū)公開招聘高端人才備考題庫完整答案詳解
- 2026年義烏市中心醫(yī)院醫(yī)共體上溪院區(qū)招聘備考題庫及1套參考答案詳解
- 高壓電工操作證培訓(xùn)課件
- 2025年新版勞動合同模板(北京版)
- 2025年事業(yè)單位工勤技能-河南-河南防疫員三級(高級工)歷年參考題庫含答案解析
- 數(shù)智企業(yè)經(jīng)營沙盤模擬實(shí)訓(xùn)教程-人力規(guī)則
- 2025年海南省直及地市、縣事業(yè)單位招聘考試自然科學(xué)專技類(綜合應(yīng)用能力·C類)歷年參考題庫含答案詳解(5卷)
- 2025年同等學(xué)力申碩-同等學(xué)力(動力工程及工程熱物理)歷年參考題庫含答案解析(5套典型題)
- 《婚姻家庭繼承法(第八版)》課件全套 房紹坤
- 隱睪護(hù)理查房
- 施工企業(yè)獎懲管理辦法
- 巡視人員獎懲管理辦法
- 保潔員工5S管理
評論
0/150
提交評論