Je travaille sur une application/jeu qui devrait basculer entre portrait
et reversePortrait
en mode multijoueur. (Principalement parce que chaque joueur peut utiliser le clavier à son tour alors que l'appareil est fixé sur la table entre eux.)Android: comment forcer l'orientation inverse portrait même si l'écran de rotation automatique du périphérique est éteint?
Mon application fonctionne correctement lorsque la rotation automatique est activée. Mais l'orientation reversePortrait
n'est JAMAIS réalisable lorsque l'appareil effectue une rotation automatique est désactivé!
Ce que je l'ai fait jusqu'à présent est que je me suis fixé l'orientation dans le fichier Manifest
:
<activity
android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
puis-je changer l'orientation par programme dans l'exécution en appelant cette méthode en cas de besoin:
public void rotateScreen(boolean reverse){
if (reverse) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
}
else{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
Mais cela ne force toujours pas à l'orientation reversePortrait
si la rotation automatique du périphérique est désactivée.
J'ai également essayé la méthode , mais cela n'a pas fonctionné aussi bien. Je pense que ça s'appelle seulement après avoir changé l'orientation déjà, pas avant!
J'ai même essayé screenOrientation="reversePortrait"
dans le fichier Manifest
, mais même cela est inefficace lorsque la rotation automatique est désactivée.
Vous pouvez ajouter une vérification à votre 'rotateScreenMethod()' pour qu'il vérifie 'Settings.System.ACCELEROMETER_ROTATION', et le définir s'il ne l'est pas. Voir cette réponse pour plus d'informations: http://stackoverflow.com/a/4909079/2891462. – user2891462