如何锁定Android屏幕方向

时间:2015-09-21 06:32:46

标签: android

我正在制作Android视频播放器。它具有类似用户可以在任何方向观看视频的功能。我只使用以下代码:

Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 1);

它可以工作,但当我添加一个用户可以锁定方向的功能时,我就这样做了:

Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0);

所以我遇到了一些麻烦。当我处于横向并尝试锁定方向时,屏幕只会变为纵向。 任何人都可以解决它或告诉我另一种方法吗?

5 个答案:

答案 0 :(得分:2)

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

OR

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);   

此处有更多信息:Developing Orientation-Aware Android Applications

答案 1 :(得分:2)

使用以下代码根据您的条件更改if else声明

int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) 
     {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
     }
 else {
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
       }

你可以在你的活动中设置任何风景或肖像。在屏幕旋转期间永远不会改变

<activity android:name="MyActivity"
 android:screenOrientation="landscape"
 android:configChanges="keyboardHidden|orientation|screenSize">
  ...
</activity>

答案 2 :(得分:1)

在AndroidManifest.xml中,针对每个活动

android:screenOrientation="landscape"

它迫使活动成为景观。

答案 3 :(得分:0)

只需在manifest.xml文件中添加以下属性即可。

android:screenOrientation="portrait"
像这样,

<activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
        </activity>

That.sit

答案 4 :(得分:0)

您可以请求ScreenOrinentation public void setRequestedOrientation (int requestedOrientation)。你可以像这样使用它

// For landscape
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
 //OR for portrait 
 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
//OR reverse landscape
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
 //OR for reverse portrait
 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
  

requestedOrientation ActivityInfo.screenOrientation中使用的方向常量。

     

在API级别1中添加   首选屏幕方向这一活动想在运行。从screenOrientation属性,SCREEN_ORIENTATION_UNSPECIFIED,SCREEN_ORIENTATION_LANDSCAPE,SCREEN_ORIENTATION_PORTRAIT,SCREEN_ORIENTATION_USER,SCREEN_ORIENTATION_BEHIND,SCREEN_ORIENTATION_SENSOR,SCREEN_ORIENTATION_NOSENSOR,SCREEN_ORIENTATION_SENSOR_LANDSCAPE,SCREEN_ORIENTATION_SENSOR_PORTRAIT,SCREEN_ORIENTATION_REVERSE_LANDSCAPE,SCREEN_ORIENTATION_REVERSE_PORTRAIT,SCREEN_ORIENTATION_FULL_SENSOR,SCREEN_ORIENTATION_USER_LANDSCAPE,SCREEN_ORIENTATION_USER_PORTRAIT,SCREEN_ORIENTATION_FULL_USER,SCREEN_ORIENTATION_LOCKED之一,