设置整个应用程序的屏幕方向

时间:2014-03-31 05:52:19

标签: java android android-activity screen-orientation

我正在实施一种方法,用户可以从应用设置中禁用屏幕旋转。如果选中此框,则可以自动旋转任何Activity并按照电话旋转设置进行操作。如果未选中,则禁用自动旋转。

我知道如何按照Activity这样做

if(!GlobalVar.sharedPreferences_static.isAutoRotate()){
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}else{
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);
}

我是否有办法为所有活动(整个应用程序)执行此操作,而不是为每个Activity执行此操作?谢谢。

3 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,您可以执行以下操作:创建一个空的Activity(不设置其内容),如下所示:

public class EmptyActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Your screen orientation logic here
    }
}

然后您将所有其他Activities扩展为EmptyActivity。因此,您只需要实现一次屏幕方向逻辑。

答案 1 :(得分:1)

同样的事情可以在清单中完成:

android:screenOrientation="landscape"

但如果(仅)应用于应用程序标记,则该属性不起作用。你仍然必须把它放在每个活动上,但至少它在语法上更容易。

答案 2 :(得分:0)

您只需将此行添加到您的活动中,就像这样

            <activity
                android:name="Package name"
                android:label="App anem"
                android:screenOrientation="landscape" //Orientation 
               >
            </activity>

或者您可以在活动开始时以类似方式设置此类...

if (Config.sDeviceType.equalsIgnoreCase("MO")) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }