Android |即使在以编程方式更改方向后如何保持方向解锁?

时间:2016-09-06 09:20:16

标签: android

我有一个视频播放器,用户也可以通过旋转设备并按下按钮来手动更改方向。 当我点击按钮时,方向变为横向,但现在方向被锁定,用户无法仅通过旋转设备就移回到纵向 我试过这个: -

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

和这: -

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

但似乎没有任何效果。 那么,我怎样才能始终保持方向解锁,用户可以通过点击按钮切换方向,保持方向解锁?

4 个答案:

答案 0 :(得分:0)

在改变您的愿望条件后试试这个

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

答案 1 :(得分:0)

添加android:screenOrientation =“portrait”>在申请部分。

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".App"
              android:label="@string/app_name"
              android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

答案 2 :(得分:0)

使用按钮更改方向后,在处理程序中将方向更改为未指定,以确保方向已更改。这是我的代码:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT);
    new Handler().postDelayed(new Runnable() {
        public void run() {
            // make screen orientation unspecified (sensor change it 
            //according to user action)
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
        }
    }, 3000);

答案 3 :(得分:0)

我还必须在打开一个 Activity 时将其方向更改为 180,然后让用户旋转回纵向并锁定它。

我刚刚在 onCreate 中添加了这些行:

requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED

活动在清单中被锁定为纵向模式。

<activity
        android:name=".ui.GalleryActivity"
        android:launchMode="singleTask"
        android:screenOrientation="sensorPortrait"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" />