在应用中想要固定屏幕的方向有两种方法

1、在AndroidManifest.xml的activity中加入: android:screenOrientation=”landscape” 属性即可(landscape是横向,portrait是纵向)。

2、随屏幕旋转时,不重新调用onCreate。

1)修改AndroidManifest.xml
     在activity属性中加入:
             android:configChanges=”orientation|keyboardHidden”
        android:configChanges,这个方法主要是负责列出清单,当清单上用户指定的设置改变时,Activity会自己处理这些变化。
        orientation,屏幕界面旋转(可能是用户手动旋转的),【注意:如果你的开发API等级等于或高于13,你还需要设置screenSize,
        因为screenSize会在屏幕旋转时改变】keyboardHidden,键盘辅助功能改变
    2)在相对应的Activity中继承重写onConfigurationChanged方法,这个方法将会在我们的应用发生变化时,让我们能随心所谓地进行监听处理。

public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
             if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE) {
    //现在是横屏如果要做竖屏判断则修改条件newConfig.orientation==Configuration.ORIENTATION_PORTRAIT

       // Nothing need to be done here

    } else {

       // Nothing need to be done here

    }
 }
备注:通过查阅Android API可以得知android:onConfigurationChanged实际对应的是Activity里的onConfigurationChanged()方法。在AndroidManifest.xml中添加上诉代码的含义是表示在改变屏幕方向、弹出软件盘和隐藏软键盘时,不再去执行onCreate()方法,而是直接执行onConfigurationChanged()。如果不申明此段代码,按照Activity的生命周期,都会去执行一次onCreate()方法,而onCreate()方法通常会在显示之前做一些初始化工作。所以如果改变屏幕方向这样的操作都去执行onCreate()方法,就有可能造成重复的初始化,降低程序效率是必然的了,而且更有可能因为重复的初始化而导致数据的丢失。这是需要千万避免的。
注意:如果你运行的api小于13的话则需要设置screenSize
官方原文翻译为:自从Android 3.2(API 13),screen size也开始跟着设备的横竖切换而改变。所以,在AndroidManifest.xml里设置的MiniSdkVersion和TargetSdkVersion属性大于等于13的情况下,如果你想阻止程序在运行时重新加载Activity,除了设置”orientation“,你还必须设置”ScreenSize”,就像这样子,android:configChanges=”orientation|screenSize”。但是呢,如果你的Target API 级别小于13,你的Activity自己会自动处理这种ScreenSize的变化。如果你的TargetSdkVersion小于13,即使你在Android 3.2或者更高级别的机器上运行程序,它还是会自己去处理ScreenSize的。