2010-11-28 5 views
1

OK J'ai une application qui utilise le magnétomètre pour afficher un graphique qui tourne avec le téléphone (essentiellement une boussole).android contrôle de paysage universel

J'ai une vérification qui soustrait 90 degrés si elle est en mode paysage, mais cela ne fonctionne que si elle est dans le mode paysage par défaut. Avec 2.1, nous avons maintenant un paysage universel que vous pouvez faire pivoter les deux sens, donc je ne sais pas maintenant comment déterminer quel mode paysage, il est en

Voici mon code:.

int test = getResources().getConfiguration().orientation; 
if(Configuration.ORIENTATION_LANDSCAPE == test) { 
      rotation = -90f; 
     } 
     else { 
      rotation = 0f; 
     } 
canvas.rotate((float) (-Math.toDegrees(mOrientation[0]) + rotation)); 

Toutes les suggestions sur comment savoir quel mode paysage est le téléphone?

Répondre

0
private static final int ORIENTATION_90 = 1; 
private static final int ORIENTATION_0 = 0; 
private static final int ORIENTATION_180 = 2; 
private static final int ORIENTATION_270 = 3; 

switch (orientation) 
    { 
     default: 
     case ORIENTATION_0: // Portrait 
     //dostuff 
     break; 
     case ORIENTATION_90: // Landscape left 
     //do stuff 
     break; 
     case ORIENTATION_180: // Upside down. 
     //do stuff 
     break; 
     case ORIENTATION_270: // Landscape right 
     //do stuff 
     break; 
     } 
+0

Quelles sont les valeurs ORIENTATION_0, ORIENTATION_90, ORIENTATION_180 et ORIENTATION_270? – CornCat

+0

Code mis à jour ci-dessus – Damian

Questions connexes