Comment est-ce que j'écouterais le changement d'orientation dans Android? et faire certaines choses lorsque l'utilisateur est passé en mode paysage?Android: écoutez Orientation change?
Répondre
Vous avez deux choix:
Utilisez un OrientationEventListener, qui a une méthode appelée onOrientationChanged.
Utilisez les changements de configuration:
Dans votre Manifest, mettez:
<activity android:name=".HelloAndroid"
android:label="@string/app_name"
android:configChanges="orientation">
Et, dans le code, override onConfigurationChanged
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
// TODO
}
est ici un bon tutorial à ce sujet .
Dans votre activité, vous pouvez remplacer cette méthode pour écouter le changement d'orientation et implémenter votre propre code.
public void onConfigurationChanged (Configuration newConfig)
La Configuration
classe a une constante int il ORIENTATION_LANDSCAPE
et ORIENTATION_PORTRAIT
, vous pouvez vérifier la NewConfig comme ceci:
super.onConfigurationChanged (NewConfig);
int orientation=newConfig.orientation;
switch(orientation) {
case Configuration.ORIENTATION_LANDSCAPE:
//to do something
break;
case Configuration.ORIENTATION_PORTRAIT:
//to do something
break;
}
Huang - votre suggestion fonctionne bien, avec une édition. Vous devez ajouter 'super.onConfigurationChanged (newConfig);' au début de la méthode pour éviter de provoquer une exception. –
oui, le super appel est nécessaire. en éclipse, cette ligne sera automatiquement ajoutée. C'est pourquoi j'ai omis. – Huang
Jamais appelé: S. Même si je mets 'android: configChanges =" orientation "' dans le manifeste – IgniteCoders
Au Android 3.2, vous devez également ajouter "ScreenSize" dans androidmanifest pour une activité spécifique
Ainsi, votre déclaration d'activité en xml deviendra
<activity android:name=".ExampleActivity"
android:label="@string/app_name"
android:configChanges="orientation|screenSize">
- 1. Android Orientation Change
- 2. Android Emulator: Orientation Change
- 3. dispositif Orientation statusBar Orientation change
- 4. Android 2.2.1, Orientation Change, et onDestroy()
- 5. Iphone Orientation Change
- 6. iPhone Orientation Change
- 7. Orientation dans Android
- 8. Orientation sur android
- 9. orientation Android question fondamentale
- 10. Écoutez la largeur navigateur/hauteur change avec jQuery
- 11. Écoutez les modifications de disposition dans Android
- 12. Android Appareil photo SurfaceView Orientation
- 13. Android TabActivity et orientation changement
- 14. Android ActivityGroup Orientation de l'écran
- 15. Orientation Modifications dans android
- 16. Android, orientation paysage uniquement?
- 17. Orientation Android avec capteurs
- 18. Caméra Android Orientation
- 19. Orientation de l'affichage android
- 20. Réglage Multi Orientation - Android
- 21. Android Orientation pour ACTION.VIEW
- 22. Android Screen Orientation lente?
- 23. Écoutez constamment l'accessibilité Internet?
- 24. Écoutez les changements périodiquement Backbone.js
- 25. Écoutez les boutons du casque filaire dans Android
- 26. Orientation android changement vertical à droite
- 27. Orientation Android modifier les appels Switch.onChange
- 28. Orientation Titanium Mobile sur Android
- 29. Android orientation changer appels onCréer
- 30. Android VideoView Paysage Orientation Problème
@ferostar Do les changements de configuration signalent un changement d'orientation du périphérique ou un changement d'orientation de l'interface utilisateur? Le premier semble clair puisqu'il utilise le gestionnaire de capteur. Je n'étais pas sûr de la seconde. – Mark13426
À partir du niveau API 13 et supérieur, l'attribut manifest configChanges doit être: "orientation | screenSize". Voir cette réponse pour plus d'informations: https://stackoverflow.com/questions/5620033/onconfigurationchanged-not-getting-called – user885232