android按钮跟随手势滑动改变位置

来源:互联网 发布:知向谁边 编辑:程序博客网 时间:2024/06/05 04:08
private OnTouchListener shopCarSettleTouch = new OnTouchListener() {
int lastX,lastY; 
@Override
public boolean onTouch(View v, MotionEvent event) {
int ea=event.getAction();  
DisplayMetrics dm=getResources().getDisplayMetrics();  
   int screenWidth=dm.widthPixels;  
   int screenHeight=dm.heightPixels-100;//需要减掉图片的高度  
switch(ea){  
case MotionEvent.ACTION_DOWN:             
lastX=(int)event.getRawX();//获取触摸事件触摸位置的原始X坐标  
lastY=(int)event.getRawY();             
           case MotionEvent.ACTION_MOVE:
            //event.getRawX();获得移动的位置
int dx=(int)event.getRawX()-lastX;  
int dy=(int)event.getRawY()-lastY;             
int l=v.getLeft()+dx;   
int b=v.getBottom()+dy;  
int r=v.getRight()+dx;  
int t=v.getTop()+dy;  
 
//下面判断移动是否超出屏幕  
if(l<0){  
l=0;      
r=l+v.getWidth();  
}  
if(t<0){  
t=0;  
b=t+v.getHeight();  
}  
if(r>screenWidth){  
r=screenWidth;  
l=r-v.getWidth();  
}  
if(b>screenHeight){  
b=screenHeight;  
t=b-v.getHeight();  
}  
v.layout(l, t, r, b);  
lastX=(int)event.getRawX();  
lastY=(int)event.getRawY();  
v.postInvalidate();             
break;  
           case MotionEvent.ACTION_UP:  
            break;         
           }
return false;
}
};
原创粉丝点击