找了很多资料都是用OnTouchListener监听拖动控件,但是当父控件刷新,即父控件内有控件刷新,之前拖动的控件就会回到原位,经过多次修改,终于实现了拖动并不会自动回到原位
/** 上传按钮随意移动 */
int lastX, lastY; //记录移动的最后的位置
int left = 0, top = 0, right = 0, bottom = 0;
@Override
public boolean onTouch(View v, MotionEvent event) {
//获取Action
int ea=event.getAction();
switch(ea){
case MotionEvent.ACTION_DOWN: //按下
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
case MotionEvent.ACTION_MOVE: //移动
//移动中动态设置位置
int dx =(int)event.getRawX() - lastX;
int dy =(int)event.getRawY() - lastY;
left = v.getLeft() + dx;
top = v.getTop() + dy;
right = v.getRight() + dx;
bottom = v.getBottom() + dy;
//不超出屏幕范围
if(left < 0){
left = 0;