[英]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.