How to make Drag & Drop Button in Android

前端 未结 4 732
既然无缘
既然无缘 2020-12-03 03:42

I want to make a drag and drop button. Drag it where you want it to do and it stays there. Below code only scales the button, doesn\'t change its position.

p         


        
4条回答
  •  [愿得一人]
    2020-12-03 04:34

    I am working on something similar to this. Here is the OnTouchListener that I am using:

             myOnTouchListener = new OnTouchListener() {
             public boolean onTouch(View v, MotionEvent me){
                 if (me.getAction() == MotionEvent.ACTION_DOWN){
                     oldXvalue = me.getX();
                     oldYvalue = me.getY();
                     Log.i(myTag, "Action Down " + oldXvalue + "," + oldYvalue);
                 }else if (me.getAction() == MotionEvent.ACTION_MOVE  ){
                    LayoutParams params = new LayoutParams(v.getWidth(), v.getHeight(),(int)(me.getRawX() - (v.getWidth() / 2)), (int)(me.getRawY() - (v.getHeight())));
                    v.setLayoutParams(params);
                 }
                 return true;
             }
         };
    

    v is the view that you are wanting to move, in your case it you'd replace v with your button. Also note that in order to get this to work I had to use an AbsoluteLayout as the parent view in my xml file. I know that it is deprecated but it seemed more logical to use that then a RelativeLayout and trying to set the margins dynamically to move the view around. The formula that I used for the new x and y positions tries to make it so that the view is centered on your finger while you are moving it. But its not quite perfect, depending on the size of the view it will still be a little off center from your finger.

提交回复
热议问题