2016-11-24 2 views
0

Я хочу разработать собственные кнопки «Принять» и «Отклонить», прокрутив изображение вправо и влево, соответственно, и проведите по экрану вверх и вниз, чтобы открытые шаблоны. Я новичок в android, поэтому я понятия не имею, как это сделать.Как проложить изображение в виде в четырех основных направлениях, то есть вправо, влево, вверх, вниз

Есть ли способ сделать это? Любой намек?

Надеюсь быть ясным.

+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

Можете ли вы мне помочь, как я могу перемещать изображение. я не могу это сделать –

Смежные вопросы