Android實(shí)現(xiàn)按鈕拖拽還原功能
具體代碼如下所示:
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://移動(dòng),小球跟隨手指的移動(dòng)
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)橫向拖拽,類似接打電話動(dòng)畫(huà)效果,左邊接聽(tīng),右邊掛斷。
總結(jié)
以上所述是小編給大家介紹的Android實(shí)現(xiàn)按鈕拖拽還原功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
PullToRefreshListView實(shí)現(xiàn)多條目加載上拉刷新和下拉加載
這篇文章主要為大家詳細(xì)介紹了PullToRefreshListView實(shí)現(xiàn)多條目加載上拉刷新和下拉加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
Android開(kāi)發(fā)框架MVC-MVP-MVVM-MVI的演變Demo
這篇文章主要為大家介紹了Android開(kāi)發(fā)框架MVC-MVP-MVVM-MVI的演變Demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Android 限制edittext 整數(shù)和小數(shù)位數(shù) 過(guò)濾器(詳解)
下面小編就為大家?guī)?lái)一篇Android 限制edittext 整數(shù)和小數(shù)位數(shù) 過(guò)濾器(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
Android仿UC底部菜單欄實(shí)現(xiàn)原理與代碼
最近剛看完ViewPager,開(kāi)始我打算用自定義的imgBtn,但是發(fā)現(xiàn)放在pager選項(xiàng)卡中不好排版,所以最好選了GridView,接下來(lái)介紹底部菜單欄實(shí)現(xiàn)2013-01-01
Android Bluetooth藍(lán)牙技術(shù)使用流程詳解
這篇文章主要介紹了Android Bluetooth藍(lán)牙技術(shù)使用流程詳解的相關(guān)資料,需要的朋友可以參考下2016-02-02
Android使用GridView實(shí)現(xiàn)日歷的方法
本篇文章主要介紹了Android使用GridView實(shí)現(xiàn)日歷的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
Android開(kāi)發(fā)注解排列組合出啟動(dòng)任務(wù)ksp
這篇文章主要為大家介紹了Android開(kāi)發(fā)注解排列組合出啟動(dòng)任務(wù)ksp示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

