2013-07-26 3 views
1

У меня есть linearlayout, который содержит некоторые другие макеты, и мне нужно переместить этот макет, удерживая его. Я реализовал этот код и его перемещение. Но проблема в том, что он вибрирует больше, когда я касаюсь его (вибрирует даже при перемещении макета).Сложность при перемещении 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

попробуйте без внутренних макетов, все еще вибрирует? –

+0

Мне нужны внутренние макеты и виды. Они хранят данные. И у меня есть изображение в качестве фона. Все это необходимо для проекта. – Bharadwaj

+0

Я знаю, но я имею в виду, если вы сейчас все удалите и попробуете без внутреннего макета, тогда было бы легче увидеть, где проблема –

ответ

1

Проблема может быть то, что значения X и Y вы получаете. Методы и getY() получают интерполированную точку, тогда как getRawX() и getRawY() помогут вам получить более точные очки, которые должны исправить , вибрирующий вопрос.

+0

Супер :), Его работа ... Спасибо :) – Bharadwaj

Смежные вопросы