91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發中怎么使用手勢檢測及通過手勢實現翻頁功能

發布時間:2022-04-07 17:26:34 來源:億速云 閱讀:238 作者:iii 欄目:編程語言

這篇文章主要介紹“Android開發中怎么使用手勢檢測及通過手勢實現翻頁功能”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Android開發中怎么使用手勢檢測及通過手勢實現翻頁功能”文章能幫助大家解決問題。

具體如下:

手勢是指用戶手指或觸摸筆在觸摸屏上的連續觸碰的行為,比如在屏幕上從左至右劃出的一個動作,就是手勢,再比如在屏幕上畫出一個圓圈也是手勢。手勢這種連續的觸碰會形成某個方向上的移動趨勢,也會形成一個不規則的幾何圖形。Android對兩種手勢行為都提供了支持:

1. 對于第一種手勢行為而言,Android提供了手勢檢測,并為手勢檢測提供了相應的監聽器。

2. 對于第二種手勢行為,Android允許開發者添加手勢,并提供了相應的API識別用戶的手勢。

手勢檢測

Android 為手勢檢測提供了一個GestureDetector類,GestrueDetector實例代表了一個手勢檢測器,創建GestureDetector時需要傳入一個GestureDetector.OnGestrureListener實例,GestureDetector.OnGestrueListener就是一個監聽器,負責對用戶的手勢行為提供響應。

GestrueDetector.OnGestureListener里包含的事件處理方法如下。

Boolean onDown(MotionEvent e):當觸碰事件按下時觸發該方法。
Boolean onFling(MotionEvent e1,MotionEvent e2,float velocitX,floatvelocity):當用戶在觸屏上拖過是觸發該方法。其中velocityX,velocityY代表拖過動作在橫向,縱向上的速度。
Abstract void onLongPress(MotionEvent e):當用戶在屏幕上長按時觸發該方法。
Boolean onScroll(MotionEvent e1,MotionEvent e2,float distance,float distance):當用戶在屏幕上滾動式觸發該方法。
Void onShowPress(MotionEvent e):當用戶在觸摸屏上按下,而且還未移動和松開時觸發該方法。
Boolean onSingleTapUp(MotionEvent e):用戶在觸摸屏上的輕擊事件將會觸發該方法。

使用Android的手勢檢測只需要兩個步驟:

1. 創建一個GestureDetector.創建該對象時必須實現一個GestureDetector.OnGestureListener監聽器實例。

2. 為應用程序的Activity的TouchEvent事件綁定監聽器,在事件處理中指定把Activity上的TouchEvent事件交給GestureDetector處理。

經過上面的兩個步驟之后,Activity上的TouchEvent事件就會交給GestureDetector處理,而GestureDetector就會檢測是否觸發了特定的手勢動作。

實例:通過手勢實現翻頁效果

思路:把Activity的TouchEvent交給GestureDetector處理.這個程序的特殊之處在于,該程序使用了一個ViewFlipper組件,ViewFlipper組件其實是一個容器類組件,因此可調用addView(View v)添加多個組件,一旦向ViewFlipper中添加了多個組件之后,ViewFlipper可使用動畫控制多個組件之間的切換效果。

本實例通過GestureDetector來檢測用戶的手勢動作,并根據手勢動作來控制ViewFlipper包含的View組件的切換,從而實現翻頁效果。

關鍵代碼如下:

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);

關于“Android開發中怎么使用手勢檢測及通過手勢實現翻頁功能”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

无为县| 巴林左旗| 石门县| 响水县| 松溪县| 于都县| 微山县| 吉林市| 廊坊市| 江达县| 古丈县| 玉环县| 额敏县| 新宁县| 杭锦旗| 昭觉县| 忻州市| 正安县| 板桥市| 宝清县| 宜黄县| 百色市| 德令哈市| 敦化市| 沁水县| 丰城市| 沾化县| 恩平市| 汉川市| 日照市| 兰溪市| 温州市| 闻喜县| 武功县| 镇平县| 界首市| 昌江| 铜梁县| 松江区| 西城区| 清丰县|