Thomas L.
- Forum-Beiträge: 58
24.03.2012, 11:54:27 via Website
24.03.2012 11:54:27 via Website
Hallo zusammen,
ich hänge wieder an meinem Tacho den ich programmieren wollte.
Ich hab jetzt eigentlich alles hinbekommen, bin aber noch nicht so ganz zufrieden.
Ich habe eine eigene View geschrieben, in der der Tacho dargestellt wird. Der Hintergrund des Tachos wird in die View gezeichnet, und in der onDraw() Methode wird die entsprechend gedrehte Nadel darübergelegt.
Nun ist es aber so, dass ich die darzustellende Geschwindigkeit nur einmal pro Sekunde aktualisieren will. Wenn man in dieser Sekunde stark beschleunigt oder bremst, führt das dazu, dass die Tachonadel "springt" (also von 100km/h auf z.B. 50km/h).
Nun will ich also immer, wenn die Geschwindigkeit aktualisiert wird, die Nadel zu ihrem Punkt via Animation drehen lassen, so dass eine flüssige Bewegung der Nadel entsteht.
Eine RotationAnimation fällt erstmal aus, da diese auf die gesamte View angewandt wird, also sich mein gesamter Tacho dreht.
Meine Frage:
Kann man performant eine eigene Animation programmieren, oder sollte man lieber eine SurfaceView über die TachoView legen, in der dann die Nadel allein dargestellt wird?
Selbst programmieren würd ich die Animation in etwa so, dass ein neuer Thread ca. 30mal pro Sekunde, den Anstellwinkel der Nadel neu berechnet und die onDraw() Methode neu aufruft.
Belastet das die CPU zu stark?
Wieviele Threads darf man denn in etwa pro App laufen lassen, ohne dass die Performance der App spürbar einbricht?
Vielen Dank schonmal für jeden Tip.
ich hänge wieder an meinem Tacho den ich programmieren wollte.
Ich hab jetzt eigentlich alles hinbekommen, bin aber noch nicht so ganz zufrieden.
Ich habe eine eigene View geschrieben, in der der Tacho dargestellt wird. Der Hintergrund des Tachos wird in die View gezeichnet, und in der onDraw() Methode wird die entsprechend gedrehte Nadel darübergelegt.
Nun ist es aber so, dass ich die darzustellende Geschwindigkeit nur einmal pro Sekunde aktualisieren will. Wenn man in dieser Sekunde stark beschleunigt oder bremst, führt das dazu, dass die Tachonadel "springt" (also von 100km/h auf z.B. 50km/h).
Nun will ich also immer, wenn die Geschwindigkeit aktualisiert wird, die Nadel zu ihrem Punkt via Animation drehen lassen, so dass eine flüssige Bewegung der Nadel entsteht.
Eine RotationAnimation fällt erstmal aus, da diese auf die gesamte View angewandt wird, also sich mein gesamter Tacho dreht.
Meine Frage:
Kann man performant eine eigene Animation programmieren, oder sollte man lieber eine SurfaceView über die TachoView legen, in der dann die Nadel allein dargestellt wird?
Selbst programmieren würd ich die Animation in etwa so, dass ein neuer Thread ca. 30mal pro Sekunde, den Anstellwinkel der Nadel neu berechnet und die onDraw() Methode neu aufruft.
Belastet das die CPU zu stark?
Wieviele Threads darf man denn in etwa pro App laufen lassen, ohne dass die Performance der App spürbar einbricht?
Vielen Dank schonmal für jeden Tip.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.