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% Sie haben diesen Code in touch_Down
geschrieben.
Versuchen Sie, es außerhalb der if-Bedingungen zu schreiben, nur um sicherzustellen, dass es auf alle Berührungsereignisse angewendet wird.
Sie können eine neue API verwenden, die per Drag & Drop verfügbar ist
%Vor%Tags und Links android android-maps