Android開發(fā)之手勢(shì)檢測(cè)及通過手勢(shì)實(shí)現(xiàn)翻頁(yè)功能的方法
本文實(shí)例講述了Android開發(fā)之手勢(shì)檢測(cè)及通過手勢(shì)實(shí)現(xiàn)翻頁(yè)功能的方法。分享給大家供大家參考,具體如下:
手勢(shì)是指用戶手指或觸摸筆在觸摸屏上的連續(xù)觸碰的行為,比如在屏幕上從左至右劃出的一個(gè)動(dòng)作,就是手勢(shì),再比如在屏幕上畫出一個(gè)圓圈也是手勢(shì)。手勢(shì)這種連續(xù)的觸碰會(huì)形成某個(gè)方向上的移動(dòng)趨勢(shì),也會(huì)形成一個(gè)不規(guī)則的幾何圖形。Android對(duì)兩種手勢(shì)行為都提供了支持:
1. 對(duì)于第一種手勢(shì)行為而言,Android提供了手勢(shì)檢測(cè),并為手勢(shì)檢測(cè)提供了相應(yīng)的監(jiān)聽器。
2. 對(duì)于第二種手勢(shì)行為,Android允許開發(fā)者添加手勢(shì),并提供了相應(yīng)的API識(shí)別用戶的手勢(shì)。
手勢(shì)檢測(cè)
Android 為手勢(shì)檢測(cè)提供了一個(gè)GestureDetector類,GestrueDetector實(shí)例代表了一個(gè)手勢(shì)檢測(cè)器,創(chuàng)建GestureDetector時(shí)需要傳入一個(gè)GestureDetector.OnGestrureListener
實(shí)例,GestureDetector.OnGestrueListener就是一個(gè)監(jiān)聽器,負(fù)責(zé)對(duì)用戶的手勢(shì)行為提供響應(yīng)。
GestrueDetector.OnGestureListener
里包含的事件處理方法如下。
Boolean onDown(MotionEvent e):當(dāng)觸碰事件按下時(shí)觸發(fā)該方法。
Boolean onFling(MotionEvent e1,MotionEvent e2,float velocitX,floatvelocity):當(dāng)用戶在觸屏上拖過是觸發(fā)該方法。其中velocityX,velocityY代表拖過動(dòng)作在橫向,縱向上的速度。
Abstract void onLongPress(MotionEvent e):當(dāng)用戶在屏幕上長(zhǎng)按時(shí)觸發(fā)該方法。
Boolean onScroll(MotionEvent e1,MotionEvent e2,float distance,float distance):當(dāng)用戶在屏幕上滾動(dòng)式觸發(fā)該方法。
Void onShowPress(MotionEvent e):當(dāng)用戶在觸摸屏上按下,而且還未移動(dòng)和松開時(shí)觸發(fā)該方法。
Boolean onSingleTapUp(MotionEvent e):用戶在觸摸屏上的輕擊事件將會(huì)觸發(fā)該方法。
使用Android的手勢(shì)檢測(cè)只需要兩個(gè)步驟:
1. 創(chuàng)建一個(gè)GestureDetector.創(chuàng)建該對(duì)象時(shí)必須實(shí)現(xiàn)一個(gè)GestureDetector.OnGestureListener
監(jiān)聽器實(shí)例。
2. 為應(yīng)用程序的Activity的TouchEvent事件綁定監(jiān)聽器,在事件處理中指定把Activity上的TouchEvent事件交給GestureDetector處理。
經(jīng)過上面的兩個(gè)步驟之后,Activity上的TouchEvent事件就會(huì)交給GestureDetector處理,而GestureDetector就會(huì)檢測(cè)是否觸發(fā)了特定的手勢(shì)動(dòng)作。
實(shí)例:通過手勢(shì)實(shí)現(xiàn)翻頁(yè)效果
思路:把Activity的TouchEvent交給GestureDetector處理.這個(gè)程序的特殊之處在于,該程序使用了一個(gè)ViewFlipper組件,ViewFlipper組件其實(shí)是一個(gè)容器類組件,因此可調(diào)用addView(View v)添加多個(gè)組件,一旦向ViewFlipper中添加了多個(gè)組件之后,ViewFlipper可使用動(dòng)畫控制多個(gè)組件之間的切換效果。
本實(shí)例通過GestureDetector來檢測(cè)用戶的手勢(shì)動(dòng)作,并根據(jù)手勢(shì)動(dòng)作來控制ViewFlipper包含的View組件的切換,從而實(shí)現(xiàn)翻頁(yè)效果。
關(guān)鍵代碼如下:
Public Boolean onFling(MotionEvent event1,MotionEvent event2,float velocityX,velocity) { if(event1.getX()-event2.getX()>FLIP_DISTANCE) { flipper.setInAnimation(animations[0]); flipper.setOutAnimation(animations[1]); flipper.showPrevious(); return true; } else if(event2.getX()-event1.getX()>FLIP_DISTANCE) { flipper.setInAnimation(animations[2]); flipper.setOutAnimation(animation[3]); flipper.showNext(); return true; } return false; }
其中:
animations[0]=AnimaionUtils.loadAnimation(this,R.anim.left_in);
animations[1]=AnimaionUtils.loadAnimation(this,R.anim.left_out);
animations[2]=AnimaionUtils.loadAnimation(this,R.anim.right_in);
animations[3]=AnimaionUtils.loadAnimation(this,R.anim.right_out);
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android手勢(shì)操作技巧匯總》、《Android基本組件用法總結(jié)》、《Android開發(fā)入門與進(jìn)階教程》、《Android調(diào)試技巧與常見問題解決方法匯總》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android GestureDetector用戶手勢(shì)檢測(cè)實(shí)例講解
- Android通過手勢(shì)實(shí)現(xiàn)答題器翻頁(yè)效果
- Android應(yīng)用中實(shí)現(xiàn)手勢(shì)控制圖片縮放的完全攻略
- android開發(fā)之為activity增加左右手勢(shì)識(shí)別示例
- android使用gesturedetector手勢(shì)識(shí)別示例分享
- Android實(shí)現(xiàn)手勢(shì)滑動(dòng)多點(diǎn)觸摸放大縮小圖片效果
- android創(chuàng)建手勢(shì)識(shí)別示例代碼
- Android手勢(shì)滑動(dòng)實(shí)現(xiàn)ImageView縮放圖片大小
- Android實(shí)現(xiàn)圖片自動(dòng)輪播并且支持手勢(shì)左右無限滑動(dòng)
- Android實(shí)現(xiàn)手勢(shì)滑動(dòng)多點(diǎn)觸摸縮放平移圖片效果
- Android中使用ViewFlipper進(jìn)行手勢(shì)切換實(shí)例
相關(guān)文章
android實(shí)現(xiàn)指紋識(shí)別功能
這篇文章主要介紹了android指紋識(shí)別功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09android自定義控件創(chuàng)建翻頁(yè)接口詳細(xì)代碼
這篇文章主要為大家介紹了android自定義控件創(chuàng)建翻頁(yè)接口詳細(xì)代碼,具有一定的實(shí)用性,感興趣的小伙伴們可以參考一下2016-07-07Android如何使用GestureDetector進(jìn)行手勢(shì)檢測(cè)詳解
GestureDetector使用很方便,提供了單擊,雙擊,長(zhǎng)按等操作的處理,但是一般的定義界面都比較復(fù)雜,還用很多需要注意的地方,這篇文章主要給大家介紹了關(guān)于Android如何使用GestureDetector進(jìn)行手勢(shì)檢測(cè)的相關(guān)資料,需要的朋友可以參考下2022-01-01Flutter通過Container實(shí)現(xiàn)時(shí)間軸效果
時(shí)間軸是前端UI經(jīng)常用到的效果,本文講解下Flutter如何通過Container實(shí)現(xiàn),感興趣的朋友可以了解下2021-05-05android實(shí)現(xiàn)漢字轉(zhuǎn)拼音功能 帶多音字識(shí)別
這篇文章主要介紹了android實(shí)現(xiàn)漢字轉(zhuǎn)拼音功能,帶多音字識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android實(shí)現(xiàn)環(huán)形進(jìn)度條代碼
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)環(huán)形進(jìn)度條的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01Android studio編寫簡(jiǎn)單的手電筒APP
一個(gè)簡(jiǎn)單的APP控制的手電筒代碼,android studio編寫一個(gè)手電筒app,調(diào)用手機(jī)的閃光等實(shí)現(xiàn)手電筒的功能,感興趣的小伙伴們可以參考一下2016-08-08Android 實(shí)現(xiàn)為點(diǎn)擊事件添加震動(dòng)效果
這篇文章主要介紹了Android 實(shí)現(xiàn)為點(diǎn)擊事件添加震動(dòng)效果,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03