欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现按钮拖拽还原功能

程序员文章站 2022-03-14 10:47:39
具体代码如下所示: public class mainactivity extends appcompatactivity { private imagebutton...

具体代码如下所示:

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;

      }
    });
  }
  
}

Android实现按钮拖拽还原功能

代码解释: 图一,是完整代码。按钮可以随意拖拽(x+y轴),抬手,按钮恢复到初始位置。 图二区域,按此方式可以实现横向拖拽,类似接打电话动画效果,左边接听,右边挂断。

总结

以上所述是小编给大家介绍的android实现按钮拖拽还原功能,希望对大家有所帮助