Android實現按鈕拖拽還原功能
阿新 • • 發佈:2020-01-19
具體程式碼如下所示:
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實現按鈕拖拽還原功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!