Android device orientation

You would think that there would be a direct solution. Android docs say:

The orientation sensor was deprecated in Android 2.2 (API level 8). Instead of using raw data from an orientation sensor, we recommend that you use the getRotationMatrix () method in combination with getOrientation () to calculate orientation values.

However, they do not provide a solution on how to implement getOrientation() and getRotationMatrix() . I spent several hours reading messages here, on developers using these methods, but they all partially inserted code or some strange implementation. Googling did not provide a tutorial. Can someone insert a simple solution using these two methods to create an orientation?

+7
source share
3 answers

here is the implementation for getOrientation ():

 public int getscrOrientation() { Display getOrient = getWindowManager().getDefaultDisplay(); int orientation = getOrient.getOrientation(); // Sometimes you may get undefined orientation Value is 0 // simple logic solves the problem compare the screen // X,Y Co-ordinates and determine the Orientation in such cases if(orientation==Configuration.ORIENTATION_UNDEFINED){ Configuration config = getResources().getConfiguration(); orientation = config.orientation; if(orientation==Configuration.ORIENTATION_UNDEFINED){ //if height and widht of screen are equal then // it is square orientation if(getOrient.getWidth()==getOrient.getHeight()){ orientation = Configuration.ORIENTATION_SQUARE; }else{ //if widht is less than height than it is portrait if(getOrient.getWidth() < getOrient.getHeight()){ orientation = Configuration.ORIENTATION_PORTRAIT; }else{ // if it is not any of the above it will defineitly be landscape orientation = Configuration.ORIENTATION_LANDSCAPE; } } } } return orientation; // return value 1 is portrait and 2 is Landscape Mode } 

And you can also reference this example, which represents the use of both methods:

  getOrientation and getRotationMatrix 

http://www.codingforandroid.com/2011/01/using-orientation-sensors-simple.html

+6
source
  public int getScreenOrientation() { // Query what the orientation currently really is. if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { return 1; // Portrait Mode }else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { return 2; // Landscape mode } return 0; } 
+4
source
 protected void onResume() { // change the screen orientation if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { setContentView(R.layout.portrait); } else if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { setContentView(R.layout.landscape); } else { setContentView(R.layout.oops); } } 
+2
source

All Articles