移动LinearLayout很困难

时间:2013-07-26 12:03:19

标签: android android-layout

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

1 个答案:

答案 0 :(得分:1)

问题可能是您获得的X和Y值。 getX()getY()方法会获得插值点,而getRawX()getRawY()会获得您想要的更精确的点,这应该可以解决振动问题。