Android-Invalidate()

04/01/2015 20:15 TeraTroll#1
Guten Abend,

ich habe mich, nach der vergangenen Zeit in welche ich viel für die Schule machen musste, mal wieder an Java gesetzt und wollte ein bisschen mit der Android SDK rumspielen.
Nun habe ich allerdings ein Problem, bei dem "refreshen" meines Canvas.

Code:

Vielleicht kann mir ja einer von euch helfen,
vielen Dank im Voraus.

MfG Joshi
04/02/2015 00:43 Dantox#2
Wo liegt denn dein Problem? Siehst du nichts? Auf den ersten Blick, kann ich dir auch nicht sagen, wo dein Fehler liegt, da ich mit SurfaceView's arbeite, die schneller als normale Views sind. Ich schau' heute nachmittag nochmal drüber.

Vorab:
Deine Fullscreen Methode gehört in onCreate() und Berechnungen, sowie Paints erstellen/stylen, packt man wegen der Performance in eine eigene Methode, die man vorher aufruft.
04/02/2015 16:55 TeraTroll#3
Ich habe vor die Blöcke testweise bewegen zu lassen, jedoch tun sie dies nicht, sie bleiben in der Mitte stehen, weswegen ich denke, dass es sich nicht redrawed.
Habe noch nie mit surfaceview gearbeitet. ^^
04/02/2015 18:07 Dantox#4
Dein Problem ist, dass du eine for-schleife benutzt. Die Idee ist nicht schlecht, für solch ein View aber nicht. Der for-loop wird ganz(!) ausgeführt, sobald er einmal(!) aufgerufen. Deine Idee war wahrscheinlich, dass es nach jedem refresh den for-loop weiterführt.
Hier ist eine Lösung, wie es funktioniert:

04/03/2015 19:48 TeraTroll#5
Danke sehr dies hat nun gut funktioniert(es bewegt sich sozusagen ein Circle von oben nach unten und verschwindet.)
Nun habe ich versucht, einen Circle in einem Kreis bewegen zu lassen(sin/cos),
das will nun aber nicht funktioniere.
Wodran liegt es nun?

04/04/2015 15:11 Dantox#6
Schau dir nochmal die Unterschiede der verschiedenen Datentypen in Java an. Mit einem Integer sin/cos kommst du wegen der Nachkommastellen nicht weit. Benutz stattdessen bspw. float.


Ich habe den Datentyp für t zu double geändert, damit man in kleineren Schritten den Circle drehen kann. t kannst du natürlich beliebig verändern. Damit du selbst schneller deine Fehler erkennst, habe ich dir mal ein Beispiel gezeigt, wie du mit LogCat die Werte der Variablen checken kannst, während die App läuft.
04/04/2015 15:58 TeraTroll#7
Vielen Dank es funktioniert wunderbar :)