1

我有一个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;
            }
        });
4

1 回答 1

1

问题可能是您得到的 X 和 Y 值。getX()andgetY()方法得到一个插值点,而andgetRawX()getRawY()得到你想要的更精确的点,这应该可以解决振动问题。

于 2013-07-26T12:07:55.737 回答