在某些游戏中我们可能需要禁止横屏和竖屏切换,其实实现这个要求很简单,只要在
AndroidManifest.xml
在android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在Activity再次Create的时候载入配置。在activity加上android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.而是去调用onConfigurationChanged(Configuration newConfig). 这样就可以在这个方法里调整显示方式.
示例如下:
在Activity中,重写 onConfigurationChanged 函数:
publicvoidonConfigurationChanged(Configuration newConfig) {
// TODOAuto-generated method stub
try{
super.onConfigurationChanged(newConfig);
if(this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_LANDSCAPE) {
}
elseif(this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_PORTRAIT) {
}
} catch(Exception ex) {
}
}
在ManiFest.xml中,添加screenOrientation configChanges两个属性:
<applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
<activity android:name=".ViewMain"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
注:禁止横屏切换后可以不重写 onConfigurationChanged函数,此处只是为了处理其他事件。