具體代碼如下所示:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了岳陽免費(fèi)建站歡迎大家使用!
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(); //獲取手機(jī)觸摸的坐標(biāo) 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://當(dāng)手指抬起時(shí),回到小球初始的位置 ibOk.layout(startLeft, startTop, startRight, startBottom); break; } return true; } }); } }
代碼解釋: 圖一,是完整代碼。按鈕可以隨意拖拽(X+Y軸),抬手,按鈕恢復(fù)到初始位置。 圖二區(qū)域,按此方式可以實(shí)現(xiàn)橫向拖拽,類似接打電話動畫效果,左邊接聽,右邊掛斷。
總結(jié)
以上所述是小編給大家介紹的Android實(shí)現(xiàn)按鈕拖拽還原功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!