button随意移动

    技术2022-05-18  23

     

    public void onCreate(Bundle savedInstanceState)

    {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    mBtn = (Button)findViewById(R.id.btn);

    mBtn.setOnTouchListener(new Button.OnTouchListener()

    {

    int[] temp = new int[] { 0, 0 };

     

    @Override

    public boolean onTouch(View v, MotionEvent event)

    {

    int ea = event.getAction();

    int x = (int)event.getRawX();//相对于屏幕

    int y = (int)event.getRawY();//相对于屏幕

    switch (ea)

    {

    case MotionEvent.ACTION_DOWN:

    temp[0] = (int)event.getX();//相对于容器(button)

    temp[1] = y - v.getTop();

    break;

    case MotionEvent.ACTION_MOVE:

    v.layout(x - temp[0], y - temp[1], x + v.getWidth()

    - temp[0], y - temp[1] + v.getHeight());

    v.postInvalidate();

    break;

    default:

    break;

    }

    return false;

    }

    });

    }

     


    最新回复(0)