我正在尝试使用服务在Windowmanager上上下移动视图。 使用当前代码遇到的问题是,当我向下拖动视图时,视图会向上移动,反之亦然。
如果有使用拖动侦听器的解决方案,则非常欢迎。 这是我正在使用的代码。
linearLayout.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//remember the initial position.
initialX = params.x;
initialY = params.y;
//get the touch location
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
return true;
case MotionEvent.ACTION_UP:
int Xdiff = (int) (event.getRawX() - initialTouchX);
int Ydiff = (int) (event.getRawY() - initialTouchY);
return true;
case MotionEvent.ACTION_MOVE:
//Calculate the X and Y coordinates of the view.
params.x = initialX + (int) (event.getRawX() - initialTouchX);
params.y = initialY + (int) (event.getRawY() - initialTouchY);
//Update the layout with new X & Y coordinate
updateViews(linearLayout,params);
return true;
}
return false;
}
});
private void updateViews(final LinearLayout headImage, final WindowManager.LayoutParams params) {
windowManager.updateViewLayout(headImage, params);
}