国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android屏幕手勢檢測的實現代碼

2019-10-22 18:24:02
字體:
來源:轉載
供稿:網友

Android 關于手勢的操作提供兩種形式:一種是針對用戶手指在屏幕上劃出的動作而進行移動的檢測,這些手勢的檢測通過android/233317.html">android提供的監聽器來實現;另一種是用 戶手指在屏幕上滑動而形成一定的不規則的幾何圖形(即為多個持續觸摸事件在屏幕形成特定的形狀);本文給大家分享android屏幕手勢檢測的實現代碼。

Android屏幕手勢檢測的原理是由于觸摸事件的檢測與識別比較繁瑣,因此Android提供了手勢檢測器幫助開發者識別手勢。利用手勢檢測器可以自動辨別常用的幾個手勢事件,如點擊、長按、滑動等,從而使開發者專注于業務邏輯,不必在手勢的行為判斷上絞盡腦汁。

layout/activity_gesture_detector.xml界面布局代碼如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical"  android:paddingTop="10dp">  <TextView    android:id="@+id/tv_gesture"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:gravity="center"    android:text="這里查看手勢結果"    android:textColor="@color/black"    android:textSize="17sp" /></LinearLayout>

GestureDetectorActivity.java邏輯代碼如下:

package com.fukaimei.gesturedetector;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.GestureDetector;import android.view.MotionEvent;import android.widget.TextView;import com.fukaimei.gesturedetector.util.DateUtil;public class GestureDetectorActivity extends AppCompatActivity {  private TextView tv_gesture;  private GestureDetector mGesture;  private String desc = "";  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_gesture_detector);    tv_gesture = (TextView) findViewById(R.id.tv_gesture);    mGesture = new GestureDetector(this, new MyGestureListener());  }  public boolean dispatchTouchEvent(MotionEvent event) {    mGesture.onTouchEvent(event);    return true;  }  final class MyGestureListener implements GestureDetector.OnGestureListener {    @Override    public final boolean onDown(MotionEvent event) {//     desc = String.format("%s%s 您按下來了/n", desc, DateUtil.getNowTime());//     tv_gesture.setText(desc);      //onDown的返回值沒有作用,不影響其它手勢的處理      return true;    }    @Override    public final boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {      float offsetX = e1.getX() - e2.getX();      float offsetY = e1.getY() - e2.getY();      if (Math.abs(offsetX) > Math.abs(offsetY)) {        if (offsetX > 0) {          desc = String.format("%s%s 您向左滑動了一下/n", desc, DateUtil.getNowTime());        } else {          desc = String.format("%s%s 您向右滑動了一下/n", desc, DateUtil.getNowTime());        }      } else {        if (offsetY > 0) {          desc = String.format("%s%s 您向上滑動了一下/n", desc, DateUtil.getNowTime());        } else {          desc = String.format("%s%s 您向下滑動了一下/n", desc, DateUtil.getNowTime());        }      }      tv_gesture.setText(desc);      return true;    }    @Override    public final void onLongPress(MotionEvent event) {      desc = String.format("%s%s 您長按了一下下/n", desc, DateUtil.getNowTime());      tv_gesture.setText(desc);    }    @Override    public final boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {      return false;    }    @Override    public final void onShowPress(MotionEvent event) {    }    @Override    public boolean onSingleTapUp(MotionEvent event) {      desc = String.format("%s%s 您輕輕點了一下/n", desc, DateUtil.getNowTime());      tv_gesture.setText(desc);      //返回true表示我已經處理了,別處不要再處理這個手勢      return true;    }  }}

Demo程序運行效果界面截圖如下:

android,屏幕手勢,手勢檢測

總結

以上所述是小編給大家介紹的Android屏幕手勢檢測的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仙桃市| 新津县| 望都县| 铁岭市| 成都市| 扎兰屯市| 开鲁县| 五家渠市| 吴川市| 临朐县| 云南省| 新河县| 乌拉特后旗| 尉犁县| 秀山| 太仓市| 岫岩| 精河县| 当阳市| 长春市| 晴隆县| 治县。| 沧州市| 鄂州市| 新野县| 德阳市| 水城县| 攀枝花市| 涟水县| 邹城市| 江北区| 泾阳县| 揭东县| 南通市| 景泰县| 兴文县| 札达县| 郑州市| 河曲县| 北安市| 枞阳县|