android中禁止横屏和竖屏切换

在某些场合可能需要禁止横屏和竖屏切换,实现这个要求很简单,只要在AndroidManifest.xml里面加入这一行android :screenOrientation="landscape "(landscape 是横向,portrait 是纵向)。不过android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在 Activity再次Create的时候载入配置。在activity加上 android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而是去调用 onConfigurationChanged(Configuration newConfig). 这样就可以在这个方法里调整显示方式. 

if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){ 
  //横屏 
  setContentView(R.layout.file_list_landscape); 
}else{ 
  //竖屏 
   setContentView(R.layout.file_list); 
}

例:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.ray.linkit"
      android:versionCode="1"
      android:versionName="1.0"> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
        <activity android:name=".Main"
                  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> 
                <activity android:name=".GamePlay"
                android:screenOrientation="portrait"></activity> 
                <activity android:name=".OptionView"
                android:screenOrientation="portrait"></activity> 
    </application> 
    <uses-sdk android:minSdkVersion="3" /> 
</manifest>