Comment obtenir OrientationEventListener.onOrientationChanged () pour être appelé que lorsque tourne l'interface utilisateur [double]
-
25-10-2019 - |
Question
Possible en double: Comment rotation puis-je détecter écran
Bonjour,
Tout ce que je veux faire, est de détecter un changement de rotation dans ma demande. Cependant, je pense avoir trouvé un bogue dans le système Android. Si vous lisez ceci:
http://developer.android.com/guide /practices/optimizing-for-3.0.html#Landscape
Il dit que chaque fois que c'est appelé et est appelé Activity.onCreate (), le dispositif change d'orientation, Activity.onDestroy (). Donc, je me suis dit que je pouvais utiliser la méthode Display.getRotation () pour comprendre ma nouvelle orientation dans la méthode Activity.onCreate (). Cependant, j'ai découvert que, pour une raison onCreate () (ou même onResume ()) est jamais appelé si vous retournez l'appareil rapidement de 180 degrés. Je l'ai prouvé en utilisant ce pain grillé messages. Mon message de pain grillé dans mon Activity.onCreate () (ou dans Activity.onResume ()) apparaît avec 90 tours de degré, mais pas avec 180 degrés flips de l'appareil. Ainsi, le point est, la demande dans l'article ci-dessus est pas toujours vrai.
Alors j'ai décidé d'utiliser OrientationEventListener.onOrientationChanged (). Cela fonctionne, mais je ne veux pas onOrientationChanged () à appeler à plusieurs reprises dans mon application (il est appelé à chaque changement de degré unique de l'appareil). Cela va ralentir tout ce que je fais. Je veux seulement qu'il soit appelé quand je tourne suffisamment d'écran pour obtenir l'image sur l'écran pour faire pivoter afin que je puisse savoir si je suis à rotation_0, rotation_90, rotation_180 ou rotation_270.
Ceci est un xoom bien sûr.
Toutes les suggestions