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:
private void render() {
canvas = holder.lockCanvas();
if(canvas != null){
canvas.drawColor(backgroundColor);
for(i=0;i<items.length;++i){
items[i].render(canvas);
}
}
holder.unlockCanvasAndPost(canvas);
requestRendering = false;
}
Alles anzeigen
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