2016-04-11 32 views
0

アンドロイド画面の回転をオフにしても、デバイスの回転を取得するにはどうすればよいですか。 私はAndroidのCamera APIを使用しています。私は風景や肖像写真を回転オフで撮る必要があります。Androidデバイスの画面回転による回転オフオフ

enter image description here

この事をオフにして、デバイスの向きを取得する方法はありますか?

答えて

0

はい、あなたはいつでもあなたが使用したいプログラム的に画面の向きを設定することができます。それぞれの風景やポートレートモード用

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

。 setRequestedOrientation()メソッドはアクティビティクラスで使用できるため、アクティビティ内で使用できます。

そして、これはあなたが現在の画面の向きを取得し、その現在の状態に応じてadequatlyそれを設定することができる方法です。

Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); 
final int orientation = display.getOrientation(); 
// OR: orientation = getRequestedOrientation(); // inside an Activity 

// set the screen orientation on button click 
Button btn = (Button) findViewById(R.id.yourbutton); 
btn.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       switch(orientation) { 
        case Configuration.ORIENTATION_PORTRAIT: 
         setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
         break; 
        case Configuration.ORIENTATION_LANDSCAPE: 
         setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
         break;     
       } 
      } 
    }); 

また、あなたは、コンフィギュレーションを使用して画面の向きを取得することができます。

Activity.getResources().getConfiguration().orientation 
+0

ありがとうございますが、これは動作しません。画面の回転はシステムが無効になっているので、表示方向は常にPortraitまたはLandscapeを返します – pedrotorres

0

カメラAPIを使用している場合は、カメラパラメータを使用して回転を変更する必要があります

Camera.Parameters param = mCamera.getParameters(); 
param.setRotation(90); 
return param; 

必要なものを正確に得るために、異なる回転度を試すことができます。 90,180,270を試してください。お役に立てれば。