/**
* v.layout(l, t, r, b);
* 移动Window里面的View
*/
private View.OnTouchListener followOnView = new View.OnTouchListener() {
int startX;
int startY;
int dx;
int dy;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
startX = (int) event.getRawX();
startY = (int) event.getRawY();
break;
case MotionEvent.ACTION_MOVE:
dx = (int) event.getRawX() - startX;
dy = (int) event.getRawY() - startY;
int l = v.getLeft() + dx;
int t = v.getTop() + dy;
int r = v.getRight() + dx;
int b = v.getBottom() + 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);
startX += dx;
startY += dy;
break;
case MotionEvent.ACTION_UP:
break;
}
return false;
}
};
/**
* manager.updateViewLayout(v,params);
* 移动整个Window
*/
private View.OnTouchListener followOnWindow=new View.OnTouchListener(){
int startX;
int startY;
int dx;
int dy;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
startX=(int)event.getX();
startY=(int)event.getY();
break;
case MotionEvent.ACTION_MOVE:
dx = (int) event.getRawX()-startX;
dy = (int) event.getRawY()-startY;
params.x=dx;
params.y=dy-statusBarHeight;
manager.updateViewLayout(v,params);
break;
}
return false;
}
};
android视图拖动
最新推荐文章于 2024-11-19 10:28:23 发布