Android事件處理流程_第1頁
Android事件處理流程_第2頁
Android事件處理流程_第3頁
Android事件處理流程_第4頁
Android事件處理流程_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

博學(xué)谷——讓IT教學(xué)更簡單,讓IT學(xué)習(xí)更有效北京市昌平區(qū)建材城西路金燕龍辦公樓一層電話:400-618-4000傳智播客《Android移動應(yīng)用基礎(chǔ)教程(AndroidStudio)(第2版)》教學(xué)設(shè)計課程名稱:《Android移動應(yīng)用基礎(chǔ)教程(第2版)》授課年級:20xx年級授課學(xué)期:20xx學(xué)年第一學(xué)期教師姓名:某某老師20xx年xx月xx日課題名稱第10章Android事件處理計劃學(xué)時6學(xué)時內(nèi)容分析前面章節(jié)中介紹了Android中各種常用控件,他們組成了應(yīng)用程序界面。通常情況下,一個Android應(yīng)用程序中,用戶與應(yīng)用程序之間的交互是通過事件處理來完成的,因此我們通過處理這些事件就可以對界面上的控件進行相應(yīng)的操作,本節(jié)將針對Android事件處理進行詳細講解。教學(xué)目標掌握基于回調(diào)機制的事件處理方法,學(xué)會處理相關(guān)事件掌握基于監(jiān)聽接口機制的事件處理方法,學(xué)會處理相關(guān)事件熟悉手勢的創(chuàng)建、導(dǎo)出與識別的相關(guān)知識,可以實現(xiàn)手勢識別的功能掌握Handler消息機制原理,會使用Handler進行線程間通信教學(xué)重點基于回調(diào)機制的事件處理、基于監(jiān)聽接口機制的事件處理、手勢、Handler消息機制教學(xué)難點手勢、Handler消息機制教學(xué)方式教師采用課堂講授為主,使用教學(xué)PPT輔助授課。教學(xué)過程第一學(xué)時(事件處理概述、基于回調(diào)機制的事件處理)一、情景導(dǎo)入1、教師根據(jù)課件,引出事件處理通常情況下,一個Android應(yīng)用程序中,用戶與應(yīng)用程序之間的交互是通過事件處理來完成的,因此我們通過處理這些事件就可以對界面上的控件進行相應(yīng)的操作,本節(jié)將針對Android事件處理進行詳細講解。2、教師根據(jù)課件,講述事件處理概述與基于回調(diào)機制的事件處理我們首先要了解什么是事件處理,接著熟悉如何處理基于回調(diào)機制的事件。3、明確學(xué)習(xí)目標要求學(xué)生了解什么是事件處理要求學(xué)生掌握基于回調(diào)機制的事件處理二、重點知識講解1、教師根據(jù)課件,講述事件處理概述首先通過課件中的內(nèi)容,在Android程序中,大部分都是圖形界面,這些界面都是通過事件來實現(xiàn)人機交互的,引出Android中的事件主要有兩種分別是鍵盤事件和觸摸事件,根據(jù)課件介紹這兩種事件。針對Android中的事件,Android平臺提供了兩種事件處理機制,具體介紹如下:(1)基于回調(diào)機制的事件處理在Android平臺中,每個View都有自己處理事件的回調(diào)方法,開發(fā)人員可以通過重寫View中的這些回調(diào)方法來實現(xiàn)需要的響應(yīng)事件,當(dāng)某個事件沒有被任何一個View處理時,便會調(diào)用Activity中相應(yīng)的回調(diào)方法。(2)基于監(jiān)聽接口的事件處理基于監(jiān)聽接口的事件處理,最常見的做法就是為Android界面組件綁定特定的事件監(jiān)聽器,例如,綁定點擊事件的監(jiān)聽器OnClickListener、綁定鍵盤事件的監(jiān)聽器OnKeyListener。根據(jù)教材內(nèi)容講解事件處理,讓學(xué)生對事件處理有一個認識。2、教師根據(jù)課件,講述基于回調(diào)機制的事件處理基于回調(diào)機制的事件處理包含處理物理按鍵事件和處理觸摸事件。在處理物理按鍵事件時,Android系統(tǒng)提供的回調(diào)方法有onKeyDown()、onKeyUp()等。處理觸摸事件時,Android系統(tǒng)提供的回調(diào)方法有onTouchEvent()、onFocusChanged()等。接下來針對這些回調(diào)方法進行詳細講解。(1)onKeyDown()方法當(dāng)Android設(shè)備上的物理按鍵(在本節(jié)的多學(xué)一招中進行詳細介紹)被按下時,程序會回調(diào)onKeyDown()方法,該方法是接口KeyEvent.Callback中的抽象方法。Android程序中所有的View都實現(xiàn)了KeyEvent.Callback接口并重寫了onKeyDown()方法,該方法主要用于捕捉手機鍵盤被按下的事件,接著根據(jù)課件中的內(nèi)容介紹該方法中參數(shù)的含義,并通過一個案例來介紹onKeyDown()方法的使用及原理。(2)onKeyUp()方法當(dāng)Android設(shè)備上的物理按鍵被彈起時,程序會回調(diào)onKeyUp()方法,該方法同樣是接口KeyEvent.Callback中的一個抽象方法,并且Android中所有View都實現(xiàn)了KeyEvent.Callback接口并重寫了onKeyUp()方法,該方法主要用于捕捉鍵盤按鍵彈起的事件,接著根據(jù)課件中的內(nèi)容介紹該方法中參數(shù)的含義。(3)onKeyTouchEvent()方法前面介紹的onKeyDown()方法與onKeyUp()方法屬于鍵盤事件的處理方法,接下來介紹一下觸摸事件的處理方法onTouchEvent(),該方法是在View類中進行定義的,并且所有View的子類中全部重寫了onTouchEvent()方法,Android程序可以通過該方法處理屏幕的觸摸事件,接著根據(jù)課件中的內(nèi)容介紹該方法中參數(shù)的含義,并通過一個案例來介紹onKeyTouchEvent()方法的使用及原理。(4)onFocusChanged()方法前面介紹的onKeyDown()方法、onKeyUp()方法、onTouchEvent()方法既可以在View中重寫又可以在Activity中重寫,而接下來要介紹的onFocusChanged()方法卻只能在View中重寫。onFocusChanged()方法是焦點改變的回調(diào)方法,當(dāng)某個控件重寫了該方法后,焦點發(fā)生變化時,會自動調(diào)用該方法來處理焦點改變的事件,接著根據(jù)課件中的內(nèi)容介紹該方法中參數(shù)的含義。老師根據(jù)教材內(nèi)容以及PPT對這些回調(diào)方法進行詳細的講解。三、歸納總結(jié),布置課后作業(yè)1、回顧上課前的學(xué)習(xí)目標,并對本節(jié)課的重要知識點進行總結(jié)。教師提問學(xué)生本節(jié)課需要掌握的知識點,包括事件處理概述、基于回調(diào)機制的事件處理等知識,并對學(xué)生的回答進行補充和總結(jié)。2、布置隨堂練習(xí),檢查學(xué)生掌握情況。根據(jù)博學(xué)谷和隨堂練習(xí)資源,給學(xué)生布置隨堂練習(xí),檢測學(xué)生的掌握程度,并對學(xué)生出現(xiàn)的問題進行解決。3、使用博學(xué)谷系統(tǒng)中的測試題給學(xué)生布置作業(yè)。第二學(xué)時(基于監(jiān)聽接口機制的事件處理)一、回顧上節(jié)講解的知識,引出本節(jié)需要講解的知識1、教師對上節(jié)課留的作業(yè)進行答疑。2、回顧上節(jié)課學(xué)習(xí)的內(nèi)容,引出本節(jié)課的內(nèi)容。上節(jié)課講解了事件處理概述與基于回調(diào)機制的事件處理等知識,了解完這些知識之后,接下來講解基于監(jiān)聽接口機制的事件處理。3、明確學(xué)習(xí)目標要求學(xué)生掌握基于監(jiān)聽接口機制的事件處理二、重點知識講解1、教師根據(jù)課件,講述基于監(jiān)聽接口機制的事件處理上一節(jié)介紹了如何通過回調(diào)機制進行事件處理,一般來說,基于回調(diào)的事件處理可用于處理一些具有通用性的事件,基于回調(diào)的事件處理代碼會顯得比較簡潔。但對于某些特定的事件,無法使用基于回調(diào)的事件處理時,只能采用基于監(jiān)聽的事件處理,本節(jié)將介紹如何基于監(jiān)聽接口機制對事件進行處理?;诒O(jiān)聽事件處理是一種更“面向?qū)ο蟆钡氖录幚恚谑录O(jiān)聽的處理模型中主要涉及三個對象,分別是EventSource(事件源)、Event(事件)、EventListener(事件監(jiān)聽器),根據(jù)課件內(nèi)容介紹這3個對象。在基于監(jiān)聽的事件處理模型中,事件監(jiān)聽器必須實現(xiàn)事件監(jiān)聽器接口,Android系統(tǒng)為不同的界面組件提供了不同的監(jiān)聽器接口,這些接口通常以內(nèi)部類的形式存在。以View類為例,它包含了一些內(nèi)部接口,如,View.OnClickListener、View.OnLongClickListener、View.onFocusChangeListener、View.OnKeyListener、View.OnTouchListener。接下來根據(jù)教材內(nèi)容針對這些接口進行詳細講解老師根據(jù)教材內(nèi)容,對基于監(jiān)聽接口機制的事件處理內(nèi)容進行詳細地講解。三、歸納總結(jié),布置課后作業(yè)1、回顧上課前的學(xué)習(xí)目標,并對本節(jié)課的重要知識點進行總結(jié)。教師提問學(xué)生本節(jié)課需要掌握的基于監(jiān)聽接口機制的事件處理的知識點,并對學(xué)生的回答進行補充和總結(jié)。2、布置隨堂練習(xí),檢查學(xué)生掌握情況。根據(jù)博學(xué)谷和隨堂練習(xí)資源,給學(xué)生布置隨堂練習(xí),檢測學(xué)生的掌握程度,并對學(xué)生出現(xiàn)的問題進行解決。3、使用博學(xué)谷系統(tǒng)中的測試題給學(xué)生布置作業(yè)。第三學(xué)時(手勢簡介、手勢檢測、使用GestureLibrary類添加手勢)一、回顧上節(jié)講解的知識,引出本節(jié)需要講解的知識1、教師對上節(jié)課留的作業(yè)進行答疑。2、回顧上節(jié)課學(xué)習(xí)的內(nèi)容,引出本節(jié)課的內(nèi)容。上節(jié)課講解了基于監(jiān)聽接口機制的事件處理的知識,了解完這些知識之后,接下來本節(jié)講解手勢簡介、手勢檢測以及使用GestureLibrary類添加手勢。3、明確學(xué)習(xí)目標要求學(xué)生了解什么是手勢要求學(xué)生掌握如何進行手勢檢測要求學(xué)生掌握如何使用GestureLibrary類添加手勢二、重點知識講解1、教師根據(jù)課件,講述手勢簡介手勢是指用戶手指或觸摸筆在觸摸屏幕上連續(xù)碰撞的行為。當(dāng)用戶觸摸屏幕時,會產(chǎn)生許多手勢,如按下、滑動、彈起等。我們知道在View類中有一個View.OnTouchListener內(nèi)部接口,通過重寫該接口的onTouch()方法可以處理一些屏幕的觸摸事件。但是這個方法中的處理過程太過簡單,如果處理一些復(fù)雜的手勢,則需要根據(jù)用戶觸摸的軌跡來判斷繪制的手勢,此時用View.OnTouchListener接口來處理會比較麻煩。AndroidSDK給我們提供了一個GestureDetector類,通過該類可以識別很多復(fù)雜的手勢。Android系統(tǒng)對兩種手勢提供了支持,一種是在屏幕上從上到下劃出一條線條的簡單手勢,Android提供了檢測此種手勢的監(jiān)聽器。另一種是在屏幕上繪制一個不規(guī)則的圖形的復(fù)雜手勢,Android允許開發(fā)者添加此種手勢,并提供了相應(yīng)的API識別用戶手勢。教師結(jié)合教材,詳細講解什么是手勢,讓同學(xué)們理解手勢的含義。2、教師根據(jù)課件,講述手勢檢測Android系統(tǒng)提供的GestureDetector類用于檢測用戶的觸摸手勢,該類內(nèi)部定義了3個監(jiān)聽接口和1個類,分別是OnGestureListener接口、OnDoubleTapListener接口、OnContextClickListener接口以及SimpleOnGestureListener類,接下來根據(jù)教材內(nèi)容對這3個接口和1個類進行介紹。3、教師根據(jù)課件,講述使用GestureLibrary類添加手勢Android系統(tǒng)除了提供手勢檢測之外,還允許應(yīng)用程序?qū)⒂脩羰謩萏砑拥街付ㄎ募?,便于后續(xù)用戶再次繪制該手勢時,系統(tǒng)可識別該手勢。Android系統(tǒng)使用GestureLibray來代替手勢庫,并提供了GestureLibraries工具類來創(chuàng)建手勢庫,該類提供了4個靜態(tài)方法從不同位置加載手勢。根據(jù)教材內(nèi)容講述這4個靜態(tài)方法。接下來通過一個案例來演示如何調(diào)用GestureLibrary類中的addGesture()方法添加一個手勢。根據(jù)教材內(nèi)容帶領(lǐng)同學(xué)一步步實現(xiàn)該案例,并詳細講解案例中使用的手勢知識點。教師結(jié)合教材,詳細講解如何使用GestureLibrary類添加手勢。三、歸納總結(jié),布置課后作業(yè)1、回顧上課前的學(xué)習(xí)目標,并對本節(jié)課的重要知識點進行總結(jié)。教師提問學(xué)生本節(jié)課需要掌握的知識點,包括手勢簡介、手勢檢測、使用GestureLibrary類添加手勢等知識,并對學(xué)生的回答進行補充和總結(jié)。2、布置隨堂練習(xí),檢查學(xué)生掌握情況。根據(jù)博學(xué)谷和隨堂練習(xí)資源,給學(xué)生布置隨堂練習(xí),檢測學(xué)生的掌握程度,并對學(xué)生出現(xiàn)的問題進行解決。3、使用博學(xué)谷系統(tǒng)中的測試題給學(xué)生布置作業(yè)。第四學(xué)時(使用GesturesBuilder軟件添加手勢、手勢識別、Handler消息機制)一、回顧上節(jié)講解的知識,引出本節(jié)需要講解的知識1、教師對上節(jié)課留的作業(yè)進行答疑。2、回顧上節(jié)課學(xué)習(xí)的內(nèi)容,引出本節(jié)課的內(nèi)容。上節(jié)課講解了手勢簡介、手勢檢測、使用GestureLibrary類添加手勢等知識,了解完這些知識之后,接下來本節(jié)講解通過使用GesturesBuilder軟件添加手勢、手勢識別以及Handler消息機制。3、明確學(xué)習(xí)目標要求學(xué)生掌握如何使用GesturesBuilder軟件添加手勢要求學(xué)生掌握如何對手勢進行識別要求學(xué)生掌握Handler消息機制二、重點知識講解1、教師根據(jù)課件,講述如何使用GesturesBuilder軟件添加手勢上一節(jié)講解了通過GestureLibrary類中的addGesture()方法來添加手勢,除了通過代碼增加手勢之外,還可以通過模擬器或者手機上(有的手機可能默認沒有)的默認系統(tǒng)軟件GesturesBuilder增加手勢,打開該軟件就可以直接創(chuàng)建一個手勢并將該手勢保存到本地,根據(jù)教材內(nèi)容講解具體的增加手勢的步驟。創(chuàng)建完手勢并將該手勢保存到本地之后,接下來將保存的手勢庫文件導(dǎo)出來便于后續(xù)對其中的手勢進行識別時使用。在AndroidStudio中,選擇【View】→【ToolWindows】→【DeviceFileExplorer】選項,在彈出的DeviceFileExplorer窗口中找到“/storage/emulated/0/”文件夾,在該文件夾中可以看到保存的手勢庫文件gestures。老師結(jié)合教材,詳細講解如何使用GesturesBuilder軟件添加手勢。2、教師根據(jù)課件,講述如何對手勢進行識別前面分別講解了兩種方式來增加手勢,并將手勢庫文件存放在本地SD卡中。本節(jié)我們將根據(jù)前面小節(jié)保存的手勢庫來識別繪制的手勢。識別手勢時,會用到GestureLibrary類提供的recognize(Gestureges)方法,該方法的返回值是一個ArrrayList<Prediction>類型的集合,表示手勢庫中所有與ges匹配的手勢集合。其中,Prediction對象中的name屬性表示匹配的手勢名稱,score屬性表示手勢的相似度,圖形越相似,相似度就會越高。接下來通過一個案例來識別手勢,在案例中通過實現(xiàn)GestureOverlayView.OnGesturePerformedListener接口來識別繪制的手勢。根據(jù)教材中的內(nèi)容對該案例進行詳細講解。老師結(jié)合教材,詳細講解如何對手勢進行識別。3、教師根據(jù)課件,講述Handler消息機制Android應(yīng)用中更新UI界面只能在主線程中完成,其他線程是無法直接對主線程進行操作的。為了解決這個問題,Android中提供了一種異步回調(diào)機制Handler,由Handler來負責(zé)與子線程進行通信。一般情況下,在主線程中綁定了Handler對象,并在事件觸發(fā)上面創(chuàng)建子線程用于完成某些耗時操作,當(dāng)子線程中的工作完成之后,會向Handler發(fā)送一個已完成的信號(Message對象),當(dāng)Handler接收到信號后,就會對主線程UI進行更新操作。Handler機制主要包括四個關(guān)鍵對象,分別是:Message、Ha

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論