2013-04-29 64 views
-1

我是android新手。而且我正在創建一個應用程序,我想在iPhone按鈕等按鈕上應用滑動效果。按下按鈕時不會發生任何事情。但一旦它按下按鈕應該完成。我的問題是.....是否有可能應用在像iPhone一樣的Android按鈕上的滑動效果?請給出一些想法來做到這一點。先謝謝你。Android上的按鈕在iPhone上的滑動效果就像iPhone?

+3

onClick做任何事,並在onTouch上做些什麼 – Unknown 2013-04-29 05:56:21

+0

我ddnt的意思是onTouch我的意思是onSwipe按鈕。就像當我們使用手勢時,整個屏幕可以從左到右和從右到左滑動,但是我們可以爲按鈕做到而不是整個屏幕? – user2330886 2013-04-29 06:00:56

回答

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 2013-04-29 06:47:01

0

你想要的是可能是Swipe-To-Dismiss

GitHub項目。

這有刷卡功能上意見。根據您的要求嘗試和修改。

enter image description here

1

它也許很遲,但我已經創造了這個目的一個小型圖書館。它允許您從xml中輕掃並自定義按鈕的行爲。 Slide Button

基本上它涉及覆蓋onTouch()事件並根據接收到的座標進行更改。它是一個簡單的事情之後,設置背景,因爲你想

+0

鼓勵鏈接到外部資源,但請在鏈接周圍添加上下文,以便你的同行用戶可以瞭解它是什麼以及爲什麼它在那裏。如果目標網站無法訪問或永久離線,請始終引用重要鏈接中最相關的部分。 – pableiros 2016-10-13 15:42:12