-1

Ich habe eine Activity, die public void onConfigurationChanged(Configuration newConfig) Methode überschreiben. Sie erhalten ein Ereignis, wenn Benutzer die Ausrichtung von Querformat zu Hochformat oder von Hochformat zu Querformat ändern. Zeigen Sie kein Ereignis, wenn ich die Ausrichtung ändere. Querformat nach links oder Querformat nach rechts. Gibt es einen Weg, um auch während der Änderung der Ausrichtung Landschaft zu Landschaft ??Wie erhalte ich eine Ereignisbenachrichtigung für eine Orientierungsänderung von Landscape Left nach LandScape Right?

Antwort

1

Sie können die Rotationsseite mit einem Beschleunigungsmesser erkennen. Wenn Sie sicher sind, dass Sie eine Ausrichtung im Quer-/Hochformat haben, legen Sie den aktuellen Winkel fest. Wenn die Ausrichtung geändert wird, berechnen Sie den Unterschied, um zu sehen, ob der Wert 90> (grob) ist. Ist dies der Fall, wurde der Bildschirm offensichtlich von Hochformat in Hochformat oder von Landschaft in Querformat gedreht. Mit dieser Berechnung konnte man auch feststellen, ob die Rotation von der linken oder rechten Seite erfolgte. Sie bekommen den Punkt. Prüfen Sie auch, diese Antworten:

https://stackoverflow.com/a/10383164/5577679

how to detect orientation of android device?

Get rotation and display in degrees

und Sensoren im Überblick:

https://developer.android.com/guide/topics/sensors/sensors_overview.html

+0

Dank für Ihre Lösung. Eigentlich brauchte ich das Ereignis on onConfigurationChange. Ist es möglich?? –

+0

Sie können Ihre Logik basierend auf dem, was ich schrieb, wo immer Sie wollen. Das heißt, es könnte auch in onConfigurationChanged sein. Wenn Sie mit Ereignis auf etwas wie Listener für Seitendrehung als Teil von onConfigurationChanged-Schnittstelle meinen, dann gibt es nichts dergleichen. Das ist der Hauptgrund, warum ich Ihnen die auf Beschleunigungssensoren basierende Lösung geschrieben habe. Ansonsten denke ich nicht, dass du hier nicht mal eine Frage stellen würdest oder würden diese Leute in Links, die ich gepostet habe, all diese Schwierigkeiten durchmachen, um etwas zu bekommen, was sie mit der Interface-Methode bekommen können. Meine Antwort ist die einzige Lösung für Ihre Frage, fürchte ich. – tompadre

+0

Der dritte Link löst mein Problem, denke ich. Ich werde onConfiguration ändern, wie ich zuvor getan habe. Wenn meine ungewöhnliche Änderung aufgetreten ist, werde ich verfolgen, dass onSensor geändert wurde und eine Schnittstelle für den Rückruf verwenden und ändern, wie benötigt. Danke –

Verwandte Themen