2D Engine benötigt, oder nicht?

  • Hallo!
    Momentan befinde ich mich noch sehr am Anfang in der Android Entwicklung. Habe bisher die ein oder andere GUI erstellt und und ein paar Kleinigkeiten zum Thema Internetanbindung, Intents und Datenverwaltung gelernt. Jetzt würde ich gerne etwas praxisorientierter lernen und hätte auch schon eine Idee für eine App (es geht um ein Zahlenspiel).


    Nun würde ich gerne wissen, ob ich für meine intendierten Pläne eine 2D Engine benötige (falls ja, welche), oder ob ich das ganze größtenteils mit Widgets umsetzen kann.


    Es sollen ca. 4 parallele, längliche Container das Display füllen, wobei diese nicht unbedingt ganz auf den Display passen, sprich man soll diese nach oben/unten ziehen können, um einen anderen ausschnitt eines solchen länglichen Widgets sehen.
    Diese Container enthalten Zahlen, die sich über-/untereinander befinden, wobei jede Zahl eine eigene, sichtbare Region aufweisen soll. Unter bestimmten Bedingungen sollen sich die Regionen von 2 bis beliebig vieler, direkt über-/untereinader befindlichen Zahlen, vereinen.
    Man kann die Zahl bzw. die Zahlen die in einer Region sind, auf einen anderen Container ziehen.


    Grobes Beispiel:
    [Blockierte Grafik: http://img3.fotos-hochladen.net/uploads/lafcmfe1bpivs.jpg]

  • Das müsste eigentlich mit vier ListViews in einem LinearLayout mit android:orientation="horiozontal" funktionieren.
    Jeder ListView erhält dann seine Liste mit Einträgen und bastelt mit einem Adapter die ListView-Elemente für die Anzeige.


    In der Layout-Datei also ungefähr so:


    Wie die einzelnen ListView-Einträge gebaut werden (und wieviel Grafik du dort brauchst), musst du dir überlegen,dafür brauchst du eine Adapter-Klasse.


    Aufbau der ListView-Einträge und die Auswertung müssen dann die vier Adapter-Objekte (jeweils mit eigenen Daten) für die vier ListViews übernehmen (wahrscheinlich brauchst du dann auch getTop() oder ähnliches, um die Position in der Liste zu bestimmen).


    Später kannst du dann noch mit weiteren Container-Elementen, Background-Drawables, Abständen und layout-weight rumspielen, um die vier ListViews und die Einträge hübsch zu gestalten. Am Anfang reichen wohl erst einfache TextViews für die Zahlen (\n für mehrzeilige Elemente) in einer großen Schrift.


    Es gibt zu ListViews und Adapter auch schon ein paar andere Fragen im Forum, wenn du dort nicht fündig wirst, dann frag noch mal. ;)


    Ich glaub, jetzt hab ich genug geändert... :-[

  • Vielen Dank schonmal für deine Hilfe, hat mir schon gut weitergeholfen!
    Könnte ich dann auch sowas umsetzen, wie z.B.:
    ich nehme das (4 12) Element der linken Spalte, ziehe es mit einer Touchgeste zwischen die 8 und 11 in der 2. Spalte, sodass hier jetzt (12 3 8 4 12 11) (von oben gelesen) ein Element bilden?


    Vielen Dank nochmals!

  • Da geht sicher was mit MotionEvents - mit denen kannst du zumindest die Koordinaten bei Drag+Drop mitbekommen.


    Dann musst du schauen, in welchem Element die Start- und End-Koordinaten sind, danach die beiden Elemente nach deinen Wünschen bearbeiten (im Datenmodell) und dann den ListAdapter informieren, dass sich was geändert hat.


    Die Sache mit den Koordinaten könnte ziemlich frickelig werden, da musst du wahrscheinlich einiges mit getTop, getHeight etc. für die unterschiedlichen Elemente rumrechnen.


    Ansonsten schau dir noch mal an, ob OnTouchListener vielleicht helfen könnte, aber du willst ja ein Touch für verschiedene View-Elemente auswerten - auch das könnte frickelig werden. Und einen MotionEvent bekommst du da auch.

Jetzt mitmachen!

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