MotionEvent GetY () и getX () возвращают неправильные значения

У меня следующая ситуация:

У меня есть пользовательский ListView с ImageView и TextView в строке. ImageView имеет onTouchListener, который вызывает мой метод onTouch. Вот несколько строк из него:

if (event.getAction()==MotionEvent.ACTION_MOVE) {
    layout.leftMargin = (int) event.getX() - dragIcon.getWidth()/2;         
    layout.topMargin = (int) event.getY() - dragIcon.getHeight()/2;
    //Log.d("Tag", "Pozycja: " +  event.getX() +", "+  event.getY());
}
dragIcon.setLayoutParams(layout);

При обнаружении перемещения я показываю новое изображение (не это в ListView) и начинаю перемещать его в соответствии с координатами x и y.

Проблема в том, что getX и getY возвращают позиции относительно ImageView в списке, а не всего ListView (я так думаю). Поэтому, когда я касаюсь элемента посередине и провожу пальцем вверх, getY возвращает отрицательные значения (над границей ImageView).

Надеюсь, я четко объяснил ...

Есть идеи, как получить эти координаты относительно размера экрана ? Спасибо.

17
задан glodos 4 June 2011 в 14:11
поделиться