Frame auf vorherigen Frame zeichnen

  • Hi Leute,
    ich würde mich über etwas Hilfe freuen, denn mir fehlt ein Lösungsansatz für mein Vorhaben.
    Also erstmal etwas zu drumherum: Ich habe eine SurfaceView-Implementation mit einem rendering-Thread, der solange die mainLoop läuft, die Methode render aufruft. Diese sieht ungefähr so aus:


    Das funktioniert so wie es soll. Zurzeit wird ein beweglicher Punkt auf den Screen gezeichnet. Allerdings habe ich vor, den Verlauf dieses Punktes darzustellen (dh eine "wachsende" Linie"). Das lässt sich zum einen durch viele kleine Linien bewerkstelligen, würde aber nach kurzer Zeit extrem die Framerate drücken, da die Anzahl der Linien ja ins unendliche steigt. Mein Plan wäre die neue Position des Punktes auf den "alten" Frame zu zeichnen. So würde eine genau so gute Linie entstehen, der Aufwand wäre aber deutlich geringer. Die Frage ist nur wie man den alten Frame wieder "zurückholt". Icb habe bereits das Kommando "canvas.drawColor(backgroundColor);" gelöscht, um ein bereinigen des Canvas zu vermeiden; führte aber zu Bildschirmflackern. Jetzt also die Frage an euch: Wie lässt sich dieser Ansatz umsetzten oder würdet ihr prinzipiell anders ansetzten?


    MfG vaio

  • Hallo Vaio,
    wenn es dir nur darum geht auf dem Screen Punkte zu zeichnen könntest du auch direkt auf dem Bitmap des Canvas die Punkte setzen. Die blieben dann da wenn du einen neuen Punkt setzt und du hättest deine wachsende Linie.....


    Schöne Grüße, schymura ^^

  • Ich habs jetzt so implementiert:

Jetzt mitmachen!

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