在某些场合可能需要禁止横屏和竖屏切换,实现这个要求很简单,只要在 AndroidManifest.xml 里面加入这一行
android:screenOrientation="landscape"(landscape 是横向,portrait 是纵向)。
不过android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在 Activity再次Create的时候载入配置。
在activity加上 android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.
而是去调用 onConfigurationChanged(Configuration newConfig). 这样就可以在这个方法里调整显示方式.
[color=red]MainActivity中:[/color]
[color=red]AndroidManifest.xml中:[/color]
android:screenOrientation="landscape"(landscape 是横向,portrait 是纵向)。
不过android中每次屏幕的切换动会重启Activity,所以应该在Activity销毁前保存当前活动的状态,在 Activity再次Create的时候载入配置。
在activity加上 android:configChanges="keyboardHidden|orientation"属性,就不会重启activity.
而是去调用 onConfigurationChanged(Configuration newConfig). 这样就可以在这个方法里调整显示方式.
[color=red]MainActivity中:[/color]
@Override
public void onConfigurationChanged(Configuration newConfig) {
try {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// land
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
// port
}
} catch (Exception ex) {
}
}
[color=red]AndroidManifest.xml中:[/color]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.himi" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" 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>
<uses-sdk android:minSdkVersion="4" />
</manifest>