簡體   English   中英

如何檢測Android中的L形手勢?

[英]How to detect a L-shaped gesture in android?

我目前正在構建一個文件管理器,它將使用手勢進行操作,這就是我需要這種手勢的原因。 我已經嘗試過在這里搜索一些類似的主題,但我找不到能讓我對這個主題有所了解的東西。 我發現的只是關於SimpleGestureListener(我已經使用過)和GestureOverlayView(我覺得這對我的應用程序不好)。 我以為我可以應用onFling方法的想法,但我意識到它不適用於我瞄准的L形手勢......為了簡單起見,這就是我想知道的事情:

在此輸入圖像描述

所以,我需要弄清楚的是如何檢測水平和垂直滑動之間的點。 有沒有其他方法可以用來檢測我的ListView上的那個點? 我只是需要一些關於如何做的想法,我知道我可以搞清楚。 :)

您需要為listview實現onTouch()事件以檢測用戶觸摸模式。 這是一個偽代碼,我將如何處理這個問題:

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {

    switch (motionEvent.getActionMasked()) {
        case MotionEvent.ACTION_DOWN:
            //Get the X and Y values the user touched down first
            mDownX = motionEvent.getRawX();
            mDownY = motionEvent.getRawY();

            break;

        case MotionEvent.ACTION_MOVE: {
            float deltaX = motionEvent.getRawX() - mDownX;
            float deltaY = motionEvent.getRawY() - mDownY;

            if (deltaX > myMoveToTheRightThreashold
                && Math.abs(deltaY) < myNoYmoveThreashold) {
                moveToRight = true;
            }
            if (moveToRight && deltaY > myMoveUpThreshold) {
                myLShapedGesture = true;
                return true;
            }
            break;
      }
      return false;
}

我根本沒有測試這個,我只是想讓你知道如何接近。 您可能需要添加一個case MotionEvent.ACTION_UP來檢測用戶何時停止觸摸設備並在那里執行所需的操作。

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM