MotionEvent GetY() und getX() falsche Werte zurückgeben

Habe ich folgende situation:

Habe ich eine custom ListView mit Bildansicht und TextView in einer Reihe.
Die Bildansicht hat einen onTouchListener, wchich ruft meine onTouch-Methode. Hier sind einige Zeilen von ihm:

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);

Wenn Bewegung erkannt wird, zeige ich das neue Bild (nicht das in der ListView) und ich fange an, verschieben Sie es nach x-und y-Koordinaten.

Das problem ist, dass getX und getY Rückkehr Positionen relativ zur Bildansicht in der Liste, nicht die ganze ListView-Steuerelement (ich glaube so). Also, wenn ich Tippen Sie auf ein Element in der Mitte und streichen Sie den finger, dann getY gibt negative Werte (über Bildansicht Grenze).

Hoffe, ich erklärte klar..

Irgendwelche Ideen, wie man diese Koordinaten relativ zum Bildschirm Größe?
Danke.

InformationsquelleAutor der Frage glodos | 2011-06-04

Schreibe einen Kommentar