У меня следующая ситуация:
У меня есть пользовательский 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).
Надеюсь, я ясно объяснил.
Любые идеи о том, как получить эти координаты относительно размера экрана? Спасибо.