Ziehen Sie Bilder in android

8

Ich arbeite an einem Wort-Scramble-Spiel, das es dem Benutzer ermöglicht, das Bild zu einem Bild zu verschieben. Wenn das Bild nicht zusammenpasst, sollte es an die ursprüngliche Position zurückkehren, von wo es gezogen wurde. Ich habe einen Beispielcode geschrieben um das Bild zu bewegen, aber das Problem ist hier, wenn ich ein Bild bewege, beginnt auch das benachbarte Bild sich zu bewegen. Hier ist der Beispielcode.

%Vor% %Vor%

Jeder plz helfen mir aus .. Versuchen, alles mögliche zu lösen.

    
Vina 24.12.2010, 04:55
quelle

5 Antworten

2

Sie müssen sicherstellen, dass das Ereignis in dem gegebenen Ball stattfindet. Das onTouch-Ereignis wird auch dann deklariert, wenn Sie sich außerhalb des Bildobjekts befinden. Sie können also in den ACTION_DOWN-Phasen, die Sie blockiert haben, nachsehen, ob sich die Berührung in den Grenzen des Objekts befindet. Sie könnten dann eine Flagge setzen, um dem System mitzuteilen, welcher Ball bewegt wird. Ich lasse dich die Programmierung machen, aber das wird dir hoffentlich eine Idee geben, was zu tun ist.

    
PearsonArtPhoto 24.12.2010, 05:27
quelle
1

Sie können eine Idee aus diesem Code nehmen, es wird sehr hilfreich sein ... und ich arbeite auch an diesem Konzept.

%Vor%

Und XML ist .....

%Vor%

    
Android Help 24.12.2012 07:10
quelle
0

Silly me ... Nachdem ich es genauer betrachtet habe, habe ich gemerkt, dass es deine grundsätzliche Herangehensweise ist, die falsch ist. Sie möchten den onTouchListener im ImageView des Balls einstellen. Ich würde eigentlich nur ein Ball-Objekt erstellen, du wirst später etwas mit ihnen machen wollen. Die rohen Koordinaten sollten genauso gut funktionieren wie überall, also ... Gib das eine Chance und lass mich wissen, wie es funktioniert.

    
PearsonArtPhoto 28.12.2010 15:12
quelle
0

Das Problem liegt beim LinearLayout, da seine Ansichten horizontal oder vertikal aufeinander bezogen sind. Ändern Sie einfach Ihr Layout in FrameLayout oder in das veraltete AbsoluteLayout. Das würde für dich gut funktionieren.

    
A.Zidan 07.01.2011 16:23
quelle
0

Ich versuche ein ähnliches Programm zu schreiben und habe das gleiche Problem. Es scheint mir, dass es im gesamten Programm nur einen "onTouchListener" geben kann. Ich benutze FrameLayout und wenn ich den Bildschirm berühre, möchte ich einen neuen Ball erscheinen lassen. Es funktioniert, wenn ich "FrameLayout.setOnTouchListener"

definiere

Wenn ich den vorhandenen Ball berühre, möchte ich ihn irgendwo ziehen. Es funktioniert, wenn "Ball.setOnTouchListener" definiert ist.

Aber wenn ich beide "setOnTouchListeners" verwende, funktioniert nur einer von ihnen.

Also ich denke, dass Android mit nur einem "setOnTouchListener" arbeiten kann und darin muss man irgendwie (; weiß ich nicht wie) prüfen, welcher dynamisch erstellte Ball berührt wurde und diesen verarbeiten.

    
Racky 15.01.2011 10:01
quelle