2013-04-29 2 views
-1

Я новичок в android. И я создаю приложение, в котором я хочу применить эффект салфетки на кнопке, такой как кнопка iPhone. При нажатии кнопки ничего не произойдет. Но как только он пронзает кнопку, что-то должно сделать. Мой вопрос ... можно ли применить эффект Swipe на кнопке Android, как iphone? Пожалуйста, дайте некоторое представление об этом. Заранее спасибо.Эффект прокрутки на кнопке в андроиде, как iphone?

+3

ничего не делать onClick и что-то делать onTouch – Unknown

+0

i ddnt означает onTouch, который я имел в виду onSwipe on button. Например, когда мы используем жест, весь экран может прокручивать влево-вправо и вправо-влево, но мы можем сделать это для кнопки только не весь экран? – user2330886

ответ

2

this answer содержит некоторую приятную информацию о «flinging», который является термином для Android, который вы, возможно, ищете. Вам нужно применить такой прослушиватель, как вы хотите «пронести».

Вот некоторые из соответствующего кода от ответа Мирек Русин в:

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(); 
       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(); 
         } 
        } 
       } else { 
        if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) { 
         if (diffY > 0) { 
          onSwipeBottom(); 
         } else { 
          onSwipeTop(); 
         } 
        } 
       } 
      } catch (Exception exception) { 
       exception.printStackTrace(); 
      } 
      return result; 
     } 
    } 
+0

Действительно удивительный ответ ...... я получил то, что действительно хочу ... Большое спасибо – user2330886

0

То, что вы хотите, может быть Swipe-To-Dismiss.

GitHub проект.

У этого есть wipe Функциональность на Просмотров. Попробуйте и измените в соответствии с вашим требованием.

enter image description here

1

Это может быть очень поздно, но я создал небольшую библиотеку для этой цели. Он позволяет прокручивать и настраивать поведение вашей кнопки из xml. Slide Button

В основном это связано с переопределением события onTouch() и внесением изменений в соответствии с полученными координатами. Его простая вещь после этого, чтобы установить фон, как вы хотите

+0

Приветствуются ссылки на внешние ресурсы, но, пожалуйста, добавьте контекст вокруг ссылки, чтобы у ваших коллег было некоторое представление о том, что это такое и почему он там. Всегда указывайте наиболее значимую часть важной ссылки, если целевой сайт недоступен или постоянно находится в автономном режиме. – pableiros

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