2016-11-24 2 views
0

画像を左右にそれぞれスワイプして上下にスワイプして、自分のAcceptとDeclineボタンを作成したいオープンテンプレート。私はアンドロイドに新しいので、私はこれを行う方法がわからない。基本的な4方向、つまり右、左、上、下のビューで画像をスワイプする方法

これを行う方法はありますか?何かヒント?

私は明確になることを望みます。

+0

チェックこのhttp://stackoverflow.com/questions/30908068/android-listview-swipe-right-and-left-to-accept-and-reject –

答えて

1

OnTouchListenerを使用してルートを計算できます。 this answerに基づいて

import android.view.GestureDetector; 
import android.view.GestureDetector.SimpleOnGestureListener; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnTouchListener; 

public class OnSwipeTouchListener implements OnTouchListener { 

    private final GestureDetector gestureDetector; 

    public OnSwipeTouchListener (Context ctx){ 
     gestureDetector = new GestureDetector(ctx, new GestureListener()); 
    } 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return gestureDetector.onTouchEvent(event); 
    } 

    private final class GestureListener extends SimpleOnGestureListener { 

     private static final int SWIPE_THRESHOLD = 100; 
     private static final int SWIPE_VELOCITY_THRESHOLD = 100; 

     @Override 
     public boolean onDown(MotionEvent e) { 
      return true; 
     } 

     @Override 
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
      boolean result = false; 
      try { 
       float diffY = e2.getY() - e1.getY(); 
       float diffX = e2.getX() - e1.getX(); 

       // Move the ImageView here, from diffX pixels horizontally and diffY pixels vertically 

       if (Math.abs(diffX) > Math.abs(diffY)) { 
        if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { 
         if (diffX > 0) { 
          onSwipeRight(); 
         } else { 
          onSwipeLeft(); 
         } 
        } 
        result = true; 
       } 
       else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) { 
         if (diffY > 0) { 
          onSwipeBottom(); 
         } else { 
          onSwipeTop(); 
         } 
        } 
        result = true; 

      } catch (Exception exception) { 
       exception.printStackTrace(); 
      } 
      return result; 
     } 
    } 

    public void onSwipeRight() { 
    } 

    public void onSwipeLeft() { 
    } 

    public void onSwipeTop() { 
    } 

    public void onSwipeBottom() { 
    } 
}
+0

はあなたに感謝しますあなたの助けを借りて、ジェスチャーを得ることができるが、私のイメージをその場所から動かすことはできません。ジェスチャーの動きとして移動したい –

+0

@HarmeetKaurコードを編集して、画像をどこに移動するべきかについてのコメントを追加しました。 –

+0

私は画像をどのように動かすことができますか教えてください。私はそうすることができません –

関連する問題