0

Ich bin einen Schritt weiter mit meinem Tacho, aber ich bin nicht so zufrieden mit meiner "Lösung". Ich habe meine eigene Ansicht für die Anzeige meines Tachometers erstellt. Die Ansicht erweitert ImageView und zeigt den Tachometer (ohne die Nadel) an. Wenn die Geschwindigkeit aktualisiert wird, dreht sich die Nadel auf den aktuellen Winkel und die Ansicht wird ungültig. Jetzt ist mein Problem, dass die Nadel "springt" (zB von 50km/h auf 100km/h). Jetzt möchte ich eine glatte Animation darüber zeichnen. Eine RotationAnimation dreht meinen ganzen Tacho, deshalb habe ich beschlossen, einen neuen Thread zu schreiben, der die Nadel mit 30FPS animiert und somit 30mal pro Sekunde Ungültig() aufruft. Das funktioniert, aber ich habe immer diesen zusätzlichen Thread im Hintergrund. Wenn ich später mehr Instrumente als den Tacho habe, gibt es viel mehr Threads. Jetzt meine erste Frage: Wie performant ist meine Lösung? Wie viele Threads könnten pro Anwendung bearbeitet werden?

Meine zweite Idee ist, eine SurfaceView für die Nadel zu verwenden, wo ich eine RotationAnimation verwenden könnte. Aber ich bin mir nicht sicher, ob es möglich ist, die aktuelle Geschwindigkeit auf einem digitalen Display anzuzeigen, während sich die Nadel dreht. (pe: die Nadel animiert von 50km/h bis 100km/h, so ist es wichtig, dass die Geschwindigkeit auf der digitalen Anzeige immer gleich ist, die Nadel zeigt auf, und nicht, dass es immer 50 zeigt, bis die Nadel die Nadel erreicht 100, und dann springt die Digitalanzeige sofort auf 100).Android: selbst geschriebene RotationAnimation für Tacho - Leistung?

Ich hoffe, Sie könnten mir mit ein paar netten Tipps helfen. Hilfe würde sehr geschätzt

Antwort

0

Sie könnten versuchen, das Observer/Observable-Muster in Kombination mit einem Referenten zu implementieren. Ihre Kalkulationslogik "aktuelle Geschwindigkeit" würde das Objekt "Ansichtsmodell" aktualisieren, das das beobachtbare Muster implementiert und auf dem Präsentator (Beobachter) registriert ist. Jetzt wird der Moderator bei jedem Update benachrichtigt und es macht Ihre Ansicht ungültig/neu. Darüber hinaus können Sie dem Moderator eine "Abklingzeit" hinzufügen, die verhindert, dass Updates öfter als x Mal pro Sekunde verbreitet werden.

, die auf jede Menge Signale skaliert werden und die gesamte Logik über Ihre Presenter-Klasse leiten.

+0

okay, ich könnte das Observer-Muster verwenden, um die Daten zu aktualisieren, aber wie würde mir das bei meiner Animation helfen? Ich habe deinen Hinweis mit dem Moderator nicht verstanden. Entschuldigung –

+0

Wenn Sie eine Kontrolllogik zwischen Ihren realen Daten und Ihrer Ansicht haben, können Sie eine "von - zu" -Animation an die Ansicht übergeben, indem Sie das View Animation Framework verwenden: http://developer.android.com/guide/topics/graphics/ view-animation.html –

+0

okay, danke für diese Information. Aber soweit ich es verstehe, bin ich wieder bei meinem Grundproblem: Tacho animiert mit der Nadel, nicht nur mit der Nadel: ** Zitat ** _So, wenn Sie ein TextView-Objekt haben, können Sie sich bewegen, drehen, wachsen oder verkleinere den Text. Wenn es ein Hintergrundbild hat, wird das Hintergrundbild zusammen mit dem Text umgewandelt. –

Verwandte Themen