Question

OK J'ai une application les utilise le magneometer pour afficher un graphique qui tourne avec le téléphone (essentiellement une boussole).

J'ai un chèque qui Soustrait 90 degrés si elle est en mode paysage, mais cela ne fonctionne que si elle est en 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 comprendre quel mode paysage, il est.

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 la façon de dire quel mode paysage le téléphone est en?

Était-ce utile?

La solution

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;
      }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top