一 AndroidManifest.xml文件设置
1.默认情况下屏幕旋转时会重建Activity调用onCreate
可以给对应的activity添加设置
android:configChanges="orientation|screenSize"//单独设置orientation可能无效
设置后屏幕变化时不会生重建Activity,同时会调用onConfigurationChanged
@Override public void onConfigurationChanged(Configuration newConfig) { //newConfig.orientation;//获取屏幕横竖状态 //Configuration.ORIENTATION_LANDSCAPE//2 横 //Configuration.ORIENTATION_PORTRAIT//1 竖 super.onConfigurationChanged(newConfig); }
2.强制固定Activity显示方向,无视机器自动旋转功能
android:screenOrientation="landscape"//横
android:screenOrientation="portrait"//竖
screenOrientation共有7中可选值(常量定义在 android.content.pm.ActivityInfo类中 ) :
landscape:横屏(风景照) ,显示时宽度大于高度;
portrait:竖屏 (肖像照) , 显示时 高 度大于 宽 度 ;
user:用户当前的首选方向;
behind:继承Activity堆栈中当前Activity下面的那个Activity的方向;
sensor:由物理感应器决定显示方向,它取决于用户如何持有设备,当 设备 被旋转时方向会随之变化——在横屏与竖屏之间;
nosensor:忽略物理感应器——即显示方向与物理感应器无关,不管用户如何旋转设备显示方向都不会随着改变("unspecified"设置除外);
unspecified :未指定,此为默认值,由Android系统自己选择适当的方向,选择策略视具体设备的配置情况而定,因此不同的设备会有不同的方向选择;
二 写代码调用函数1.强制固定Activity显示方向 (跟设置android:screenOrientation效果相同)
在Activity调用setRequestedOrientation函数
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//横setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖
2.强制开启屏幕旋转 = =#this
.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
时间: 2024-11-10 14:42:42