Android 2.2 Klicken und ziehen Sie das Bild zentriert unter Berühren

9

Ich versuche, ein Fadenkreuz auf ein MapView zu ziehen und abzulegen. Ich habe eine ImageView Taste auf dem Bildschirm. Wenn ich es berühre, verschwindet die Schaltfläche und ein neues ImageView erscheint. Das neue ImageView soll zentriert unter meinem Finger sitzen, bis ich es irgendwo loslasse, aber aus irgendeinem Grund ist der Offset falsch. Das Fadenkreuz erscheint rechts unten, wo ich mich gerade berühre.

Das Bild bewegt sich proportional, also glaube ich, dass das Problem mit den offset_x und offset_y ist, die ich im Abschnitt ACTION_DOWN definiere. Dann, in ACTION_UP muss ich createMarker(x,y) auf den richtigen Koordinaten unter meinem Finger, aber das ist auch falsch Offset.

Ich habe verschiedene Möglichkeiten ausprobiert, um es zentriert zu machen, und einige sind besser als andere. Ich war bisher nicht in der Lage, es ohne magische Zahlen funktionieren zu lassen.

Wie es ist, benutze ich die Klick-Position und subtrahiere die Hälfte der Bildgröße. Das macht für mich Sinn. Es ist näher zu korrigieren, wenn ich die gesamte Bildgröße subtrahiere. Ich habe verschiedene Beispiele aus dem Internet ausprobiert, alle leiden unter Ungenauigkeiten mit dem View Standort.

Können Sie mir einen Rat geben?

%Vor%     
Lea 05.12.2011, 05:17
quelle

2 Antworten

0

Sie haben diesen Code in touch_Down geschrieben.

%Vor%

Versuchen Sie, es außerhalb der if-Bedingungen zu schreiben, nur um sicherzustellen, dass es auf alle Berührungsereignisse angewendet wird.

    
Mayur More 06.03.2013 08:37
quelle
0

Sie können eine neue API verwenden, die per Drag & Drop verfügbar ist

%Vor%     
Arulselvam 02.04.2014 09:00
quelle

Tags und Links