我有一个linearlayout
,其中包含一些其他布局,我需要通过按住它来移动此布局。我已经实现了这个代码及其移动。但问题是当我触摸它时振动更大(即使在移动布局时也会振动)。
这是我尝试过的代码......
private int _xDelta;
private int _yDelta;
LinearLayout ll= (LinearLayout) v.findViewById(R.id.layoutid);
ll.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent ev) {
final int x_cord = (int) ev.getX();
final int y_cord = (int) ev.getY();
mScaleDetector.onTouchEvent(ev);
final int action = ev.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN: {
_xDelta = x_cord - (int) ll.getX();
_yDelta = y_cord - (int) ll.getY();
break;
}
case MotionEvent.ACTION_MOVE: {
if (!mScaleDetector.isInProgress()) {
ll.setX(x_cord - _xDelta);
ll.setY(y_cord - _yDelta);
} else {
}
break;
}
}
return true;
}
});
答案 0 :(得分:1)
问题可能是您获得的X和Y值。 getX()
和getY()
方法会获得插值点,而getRawX()
和getRawY()
会获得您想要的更精确的点,这应该可以解决振动问题。