La rotation de l'écran à l'aide de l'Affichage.getRotation()
Je suis en train de le faire afin que mon application ne va jamais dans le mode portrait, mais est capable de basculer entre les 2 paysage des vues d'écran. Je sais que cela peut être fait facilement en Gingerbread (2.3), mais j'ai de la difficulté à le faire manuellement pour les autres versions d'android, mon code est comme suit:
Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int orientation = display.getRotation();
if (orientation == 1) {
/* The device is rotated to the left. */
Log.v("Left", "Rotated Left");
} else if (orientation == 3) {
/* The device is rotated to the right. */
Log.v("Right", "Rotated Right");
} else {
}
Mon problème est comment puis-je retourner les axes x et y de la vue de l'écran en fonction de la rotation détectée? Comment puis-je obtenir d'eux afin de les inverser?
Vous devez vous connecter pour publier un commentaire.
Autant que je sache, il n'y a pas de support pour le layout inverse avant 2.3.
Donc, sauf si vous êtes le dessin de l'écran avec une coutume SurfaceView, je dirais que vous ne pouvez pas le faire à l'aide de widgets.
Avec une surface d'affichage, il suffit de transformer l'ensemble de la toile avant de le rendre à lui.
En outre, vous devez utiliser des constantes dans le but de connaître l'orientation actuelle (pas de numéros de magie), voir la Classe de Configuration de la documentation de l'API
getRotation pour la classe d'Affichage " est expliqué à https://developer.android.com/reference/android/view/Display.html#getRotation()
getRotation retourne:
Par exemple, si un périphérique a naturellement un grand écran, et que l'utilisateur a tourné sur le côté pour aller dans une orientation paysage, la valeur retournée peut être soit la Surface.ROTATION_90 ou de Surface.ROTATION_270 selon la direction, il a été transformé. L'angle est de la rotation des graphismes dessinés à l'écran, ce qui est l'opposé de la direction de la rotation physique de l'appareil. Par exemple, si l'appareil est tourné de 90 degrés dans le sens antihoraire, pour compenser le rendu va être tourné de 90 degrés dans le sens horaire, et donc la valeur retournée ici sera de la Surface.ROTATION_90.