ImageView (Figur) in einem GridLayout voll Felder animierend bewegen lassen

  • Hallo zusammen,


    aktuell arbeite ich an einem ersten Projekt, welches mit dem Native Android SDK umgesetzt werden soll. Softwareentwicklung ist für mich nun kein Fremdwort, aber wie es so am Anfang mit ner neuen API ist, muss man sich erst einmal zurecht finden ;) Daher hoffe ich, dass ihr mir hier bei folgender Anforderung weiterhelfen könnt:


    Was möchte ich tun?
    --> Ich habe ein Grid mit einer Menge von Feldern. Auf einem Feld kann sich eine Figur befinden, welche sich auf ein anderes Feld bewegen kann.


    Wie weit bin ich gekommen?
    Es gibt ein Board, welches ein GridLayout beinhaltet, in dem wie in der Skizze angerissen eine Menge von Feldern (Klasse Field extends FrameLayout) hinterlegt sind. Alle Felder sind dem Board bekannt (in einer Map gehalten). Ein Feld hat die Möglichkeit, eine Figur (AbstractFigure extends ImageView) zu halten/besitzen.


    Nun möchte ich es realisieren, dass sich eine Figur von einem Feld auf ein anderes Feld animierend bewegt.


    Android bietet ja da eine Transition API an, welche ja das Richtige für mich zu sein scheint, aber leider habe ich es noch nicht richtig hinbekommen.


    Im folgendem Stück Code bin ich momentan einfach mal am rumspielen, um prototypisch was zum Laufen zu bekommen.


    Mein Wunsch wäre, dass ich "einfach" nur das "from" Field und das "to" Field angebe und die API den Rest unter der Haube selbst erledigt (also X/Y Coord Bestimmung etc.) Daher fand ich die Zeile 22 interessant, bei der das Scene Object mit "to" und der "Figure" instantiiert wird.


    Die Methode "moveFigure" wird nach einem Klick auf einen Button testweise ausgeführt und die Figur verschwindet auch vom "from" Feld und landet auch auf dem "to" Feld. Halt nur ohne Bewegung. Ab Zeile 32 hab ich einfach nur mal herumgespielt, ob sich irgendwie ein anderes Verhalten zeigt. Tut es aber nicht.


    Die Figur ist ja ein Child des Felds, welches ja vom Parent, dem Feld losgelöst werden muss und mit dem Zielfeld einen neuen Parent bekommt. Wie handelt man das am Besten? Muss man da von Hand ran (manuell setzen), oder bietet da die API auch was, welche das z.B. im Rahmen der Animation übernimmt oder so?


    Passt die Wahl der Layouts für mein Vorhaben?


    Von daher die Frage an euch, wie man das am Sinnvollsten löst. Wenn einer von euch einen Tipp, Idee, Schnipsel oder so hat, wäre das toll.




    Vielen Dank schon einmal im Vorraus :)


    Grüße
    Christian

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!