1. 程式人生 > 程式設計 >Android實現按鈕拖拽還原功能

Android實現按鈕拖拽還原功能

具體程式碼如下所示:

public class MainActivity extends AppCompatActivity {
  private ImageButton ibOk ;
  private int lastX;
  private int lastY;
  private int startLeft;
  private int startRight;
  private int startTop;
  private int startBottom;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ibOk = (ImageButton) findViewById(R.id.ib_ok);
    ibOk.setOnTouchListener(new View.OnTouchListener() {
      @Override
      public boolean onTouch(View v,MotionEvent event) {
        int action = event.getAction();
        //獲取手機觸控的座標
        int x = (int) event.getX();
        int y = (int) event.getY();
        switch (action) {
          case MotionEvent.ACTION_DOWN://按下,獲取小球初始的位置
            startLeft = ibOk.getLeft();
            startRight = ibOk.getRight();
            startTop = ibOk.getTop();
            startBottom = ibOk.getBottom();
            lastX = x;
            lastY = y;
            break;
          case MotionEvent.ACTION_MOVE://移動,小球跟隨手指的移動
            int offsetX = x - lastX;
            int offsetY = y - lastY;
            ibOk.layout(ibOk.getLeft() + offsetX,ibOk.getTop() + offsetY,ibOk.getRight() + offsetX,ibOk.getBottom() + offsetY);
            break;
          case MotionEvent.ACTION_UP://當手指抬起時,回到小球初始的位置
            ibOk.layout(startLeft,startTop,startRight,startBottom);
            break;
        }
        return true;

      }
    });
  }
  
}

程式碼解釋: 圖一,是完整程式碼。按鈕可以隨意拖拽(X+Y軸),抬手,按鈕恢復到初始位置。 圖二區域,按此方式可以實現橫向拖拽,類似接打電話動畫效果,左邊接聽,右邊結束通話。

總結

以上所述是小編給大家介紹的Android實現按鈕拖拽還原功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!