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
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
- 1. Webview Landscape
- 2. Media Queries für Portrait und Landscape
- 3. Force "Landscape" Orientierungsmodus
- 4. Platzieren von Graphen in einem Landscape-Grid (eine Python-Challenge)
- 5. UIAlertView im Landscape-Modus
- 6. UIDeviceOrientationUnbekannt im Landscape-Modus
- 7. Wie kann ich ein Landscape-Layout nur für Tablets festlegen?
- 8. iPhone UITextField im Landscape-Modus
- 9. Landscape-Modus, Werte nicht persistent
- 10. Ist @Page {size: landscape} veraltet?
- 11. Android Landscape-Modus sieht schlecht
- 12. Drawable Ordner für Tablet Landscape-Modus
- 13. Paging ViewControllers im Landscape-Modus
- 14. Wie kann ich meine App auf den Landscape-Modus beschränken?
- 15. Wie Layout-UI in Android Landscape-Anwendung
- 16. Landscape nur iPad-Anwendung mit Mono Touch
- 17. Programmierung mit Interface Builder im Landscape-Modus
- 18. Landscape Orientation: Ändere Imageview src (mit Picasso)
- 19. presentModalViewController für UIImagePicker schlägt im Landscape-Modus für iPhone 3.0
- 20. Landscape nur iPhone App mit mehreren Nibs
- 21. Probleme mit der Wischgeste im Landscape-Modus
- 22. Force Landscape Ansicht auf nur einem UIViewController
- 23. Landscape-Modus kann nicht zwei Fragmente zeigen
- 24. Landscape und Portrait Mode Layout Probleme
- 25. Landscape search Textfeld und Tastatur Ausgabe
- 26. MediaStore.EXTRA_OUTPUT enthält immer null in Landscape-Modus
- 27. Arbeiten mit Orientierungsänderung in Mono für Android
- 28. Entwerfen einer "Landscape-Anwendung" für einen Pocket-PC
- 29. Wie zeige ich eine Landscape Coverflow Style-Ansicht an, wenn das Gerät gedreht wird?
- 30. Nur Statusleiste dreht sich zu Landscape (iPhone)
Dank für Ihre Lösung. Eigentlich brauchte ich das Ereignis on onConfigurationChange. Ist es möglich?? –
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
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 –