Ich will nur eine einfache Sache Ich habe eine Bildansicht und ich kann sie mit Touch verschieben
Das ist mein Code, es tut mir leid, wenn das falsch ist, weil ich es einfach selbst versuche
%Vor%}
Kannst du mir bitte den richtigen Weg zeigen? Danke: D
onTouch
-Ereignisse zum Ziehen von Ansichten funktionieren perfekt für untergeordnete Ansichten von RelativeLayout
und FrameLayout
.
Hier ist ein Beispiel:
%Vor% Nun, was dx
und dy
bedeutet, zeigt es an ACTION_DOWN
an, wo Sie die Ansicht berührt haben, und erhält die Differenz von links (x) und oben (y) der Ansicht, um diese Ränder beizubehalten während ACTION_MOVE
.
Das Touch-Ereignis muss true
sein, wenn Sie es besuchen.
Update: Für API 8
Im Fall von API 8 liefern die Methoden getX()
und getY()
keine korrekten Ergebnisse. Sie können also getRawX()
und getRawY()
Methoden verwenden.
Beispiel:
%Vor%Wenn Sie Ihr Bild in eine beliebige Richtung verschieben möchten, müssen Sie die Richtung angeben Sie sollten den folgenden Schritt befolgen Schritt 1 float dx = 0, dy = 0, x = 0, y = 0, z = 0, w = 0, dz = 0, dw = 0; {Diese vier Koordinaten}
%Vor%Ich hatte das gleiche Problem und konnte das Problem lösen. Das heißt, ziehen Sie das Bild auf dem Bildschirm, zusätzlich vergrößern und verkleinern und drehen Sie das Bild auf Framelayout in Android programmgesteuert. Probieren Sie einfach diesen Quellcode aus diesem Blogpost
ausAndroid drehen Zoom ziehen Bild in Bildansicht auf Touch-Beispiel ...