1.设置Activity方向
在AndroidMainfest.xml里设置Activity默认方向
<activity android:name=".myActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
landscape:横向
portrait:纵向
2.检测屏幕变化方向
重写onConfigurationChanged方法
@Override public void onConfigurationChanged(Configuration newConfig) { // TODO Auto-generated method stub super.onConfigurationChanged(newConfig); //竖屏 if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) { //改为横屏 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } //横屏 else if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { //改为竖屏 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } }
每次旋转屏幕,Activity都会重新绘制页面,Activity重走一次生命周期。
3.阻止方向变化重新创建Activity
在AndroidMainfest.xml里设置
android:configChanges="orientation|keyboardHidden"
这样,方向变换就不会重新创建此Activity