Ansatz zur Umsetzung einer Idee mit vielen verschiedenen Farbfeldern die befüllt werden sollen. Array? Schaltflächen? ???

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ansatz zur Umsetzung einer Idee mit vielen verschiedenen Farbfeldern die befüllt werden sollen. Array? Schaltflächen? ???

    Hallo liebes Forum!

    Vielleicht kurz vorweg eine kleine Einleitung zu meiner Person: Ich bin Informatik Studentin und habe gerade (fast) das erste Semester abgeschlossen. Für die Semesterferien juckt es mich in den Fingern mal ein kleines eigenes Projekt zu starten und da bin ich auf eine Android App gekommen. Wie mein Name schon sagt, würde ich nicht sagen, dass ich krass was drauf habe, aber ich möchte gerne was dazu lernen, deswegen wende ich mich ja auch an euch :)

    Eclipse samt SDK sind auch schon heruntergeladen und ich habe auf udacity den Basic Kurs für Android Entwicklung gemacht bzw. bin noch dabei.

    Jetzt zu meinem eigentlichen Anliegen:
    Meine erste Idee, da es mir einfach erschien war eine Art Malen nach Zahlen App wie Pixelart umzusetzen.

    Ich habe jetzt aber mal angefangen das etwas genauer zu durchdenken und mir fällt auf:
    Es gibt mehrere technische Methoden das umzusetzen und mit einigen werde ich vermutlich schnell wie der Ochs vorm sprichwörtlichen Berge stehen

    1. Arrays:
    Aus dem Array müsste man dann ja quasi ein Bitmap erzeugen. Dieses Array müsste wiederrum auch gezoomt werden können und die entsprechende Klickposition dann wiederrum auf das Bitmap abgebildet.

    2. Jedes Pixel als einzelne Schaltfläche
    Sehr offensichtlich, aber ab spätestens 10x10 Pixeln kaum noch machbar, da man dann ja reinzoomen müsste. Gibt es da eine simple Funktion, die mir dabei helfen kann?

    3: ...

    Hier kommt ihr (hoffentlich) ins Spiel, ich bin mir sicher, dass es noch eine Menge anderer Ansätze gibt. Das größte Problem ist also bisher der Zoom. Die normale Zoom Animation kenne ich zwar, aber Sie macht in diesem Fall ja wohl kaum Sinn, gibt es etwas ähnliches, das ich für meinen Anwendungsfall nutzen könnte?

    Ich bin um jeden Beitrag dankbar und freue mich, wenn ihr mich vielleicht mal einen Schubs in die richtige Richtung geben könntet

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von codekiddy ()

  • Hallo Da sich hier wohl keiner traut versuche ich mal hier eine Möglichkeit zu geben.


    Erstens würde ich Eclipse und das ATD nicht mehr empfehlen wird seit 2015 nicht weiter entwickelt mit API 23 hast du da schon Probleme nimm Android Studio.


    >Gibt es da eine simple Funktion, die mir dabei helfen kann?
    Wird es wohl nicht geben vielleicht eine Lib bei GitHub weiß ich aber nicht.
    Auch das mit der Animation kannst du in diesem fall vergessen.


    >Aus dem Array müsste man dann ja quasi ein Bitmap erzeugen. Dieses Array müsste wiederrum auch gezoomt werden können und die entsprechende Klickposition dann wiederrum auf das Bitmap abgebildet.


    Würde es eher anderem sehen du erstellst aus einen Array was dein Spielfeld darstellt ein Bitmap und das Zoomst und verschiebst du. Wie willst du ein Array Zoomen das ist ein Daten Feld und keine Grafik.
    Wie du die Daten in dein Array bekommst ist wieder ein anderes Thema kannste auch aus einem Bitmap (Grafik) machen also Farbwerte in zahlen Umsetzen Pixel für Pixel.


    Also ich würde eine Klasse von View ableiten dort die onDraw Methode Überschreiben.
    In dieser entweder gleich auf das Canvas zeichnen oder erst in ein Bitmap zeichnen und diese dann der Canvas übergeben.
    Denke bei Grossen Spielfeldern wird es mit dem Umweg über Bitmap Performanter sein.
    Schaltflächen gibt es keine Du benutzt den „onTouchEvent“ Listner wertest alle Event selber aus also ob jetzt eine Fläche geklickt, verschieben, …
    Das Zoom Event kannst du dir mit dem „ScaleGestureDetector“ holen


    Das Zoomen kannst du mit dem „canvas.scale (mScaleFactor, mScaleFactor, mFocusX, mFocusY);“ oder über die Matrix
    Verschieben zb. mit „canvas.translate (x, y);“
    Dann musst du selber auswerten wo und welche Schaltfläche geklickt wurde.


    So in etwa währe mein erster Ansatz.


    Kannst auch mal versuchen ein Gridlayout zu verwenden, denke das du dir auch wieder eine Klasse ableiten musst. Um das Zoomen und schieben wirst du dich da auch kümmern müssen. Nur könnte es mit dem auswerten der Schaltflächen einfacher sein.


    So ich hoffe du bekommst noch bessere Tipps.


    Lg Jörg.
    Ein Feedback auf Tipps ist auch schön. :P
  • Neu

    Ein spätes, aber dafür großes DANKE, dass du dir Zeit genommen hast mir zu helfen.

    Also ich würde eine Klasse von View ableiten dort die onDraw Methode Überschreiben.
    In dieser entweder gleich auf das Canvas zeichnen oder erst in ein Bitmap zeichnen und diese dann der Canvas übergeben.
    Das ist schon mal ein Ansatz. Ich denke das klingt für mich so weit erstmal praktikabel.
    Meine letzte Klausur war diese Woche also werde ich mich ab jetzt ins try and Error stürzen :D