這篇文章主要介紹“Android開(kāi)發(fā)中怎么使用手勢(shì)檢測(cè)及通過(guò)手勢(shì)實(shí)現(xiàn)翻頁(yè)功能”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Android開(kāi)發(fā)中怎么使用手勢(shì)檢測(cè)及通過(guò)手勢(shì)實(shí)現(xiàn)翻頁(yè)功能”文章能幫助大家解決問(wèn)題。
創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)乾安,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):18980820575
具體如下:
手勢(shì)是指用戶(hù)手指或觸摸筆在觸摸屏上的連續(xù)觸碰的行為,比如在屏幕上從左至右劃出的一個(gè)動(dòng)作,就是手勢(shì),再比如在屏幕上畫(huà)出一個(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)聽(tīng)器。
2. 對(duì)于第二種手勢(shì)行為,Android允許開(kāi)發(fā)者添加手勢(shì),并提供了相應(yīng)的API識(shí)別用戶(hù)的手勢(shì)。
手勢(shì)檢測(cè)
Android 為手勢(shì)檢測(cè)提供了一個(gè)GestureDetector類(lèi),GestrueDetector實(shí)例代表了一個(gè)手勢(shì)檢測(cè)器,創(chuàng)建GestureDetector時(shí)需要傳入一個(gè)GestureDetector.OnGestrureListener
實(shí)例,GestureDetector.OnGestrueListener就是一個(gè)監(jiān)聽(tīng)器,負(fù)責(zé)對(duì)用戶(hù)的手勢(shì)行為提供響應(yīng)。
GestrueDetector.OnGestureListener
里包含的事件處理方法如下。
Boolean onDown(MotionEvent e):當(dāng)觸碰事件按下時(shí)觸發(fā)該方法。
Boolean onFling(MotionEvent e1,MotionEvent e2,float velocitX,floatvelocity):當(dāng)用戶(hù)在觸屏上拖過(guò)是觸發(fā)該方法。其中velocityX,velocityY代表拖過(guò)動(dòng)作在橫向,縱向上的速度。
Abstract void onLongPress(MotionEvent e):當(dāng)用戶(hù)在屏幕上長(zhǎng)按時(shí)觸發(fā)該方法。
Boolean onScroll(MotionEvent e1,MotionEvent e2,float distance,float distance):當(dāng)用戶(hù)在屏幕上滾動(dòng)式觸發(fā)該方法。
Void onShowPress(MotionEvent e):當(dāng)用戶(hù)在觸摸屏上按下,而且還未移動(dòng)和松開(kāi)時(shí)觸發(fā)該方法。
Boolean onSingleTapUp(MotionEvent e):用戶(hù)在觸摸屏上的輕擊事件將會(huì)觸發(fā)該方法。
使用Android的手勢(shì)檢測(cè)只需要兩個(gè)步驟:
1. 創(chuàng)建一個(gè)GestureDetector.創(chuàng)建該對(duì)象時(shí)必須實(shí)現(xiàn)一個(gè)GestureDetector.OnGestureListener
監(jiān)聽(tīng)器實(shí)例。
2. 為應(yīng)用程序的Activity的TouchEvent事件綁定監(jiān)聽(tīng)器,在事件處理中指定把Activity上的TouchEvent事件交給GestureDetector處理。
經(jīng)過(guò)上面的兩個(gè)步驟之后,Activity上的TouchEvent事件就會(huì)交給GestureDetector處理,而GestureDetector就會(huì)檢測(cè)是否觸發(fā)了特定的手勢(shì)動(dòng)作。
實(shí)例:通過(guò)手勢(shì)實(shí)現(xiàn)翻頁(yè)效果
思路:把Activity的TouchEvent交給GestureDetector處理.這個(gè)程序的特殊之處在于,該程序使用了一個(gè)ViewFlipper組件,ViewFlipper組件其實(shí)是一個(gè)容器類(lèi)組件,因此可調(diào)用addView(View v)添加多個(gè)組件,一旦向ViewFlipper中添加了多個(gè)組件之后,ViewFlipper可使用動(dòng)畫(huà)控制多個(gè)組件之間的切換效果。
本實(shí)例通過(guò)GestureDetector來(lái)檢測(cè)用戶(hù)的手勢(shì)動(dòng)作,并根據(jù)手勢(shì)動(dòng)作來(lái)控制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開(kāi)發(fā)中怎么使用手勢(shì)檢測(cè)及通過(guò)手勢(shì)實(shí)現(xiàn)翻頁(yè)功能”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。
新聞名稱(chēng):Android開(kāi)發(fā)中怎么使用手勢(shì)檢測(cè)及通過(guò)手勢(shì)實(shí)現(xiàn)翻頁(yè)功能
地址分享:http://aaarwkj.com/article26/igdojg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、App設(shè)計(jì)、建站公司、品牌網(wǎng)站制作、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)