今天遇到一个问题,我所有的activity都是继承自BaseActivity, 在BaseActivity 中的onCreate 中设置了setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);竖屏。
但是我现在用的这个Activity中要全屏播放视频,一种是手机旋转,一种是强制设置横屏。这里就对Android 中横竖屏的设置做一个总结。
在manifest.xml中配置
android:screenOrientation=”*”
sensor 重力感应 用户旋转屏幕会切换横竖屏显示
landscape 横屏显示
portrait 竖屏显示
上面这几个比较常用其他的参数
unspecified 由系统来判断显示方向
user 用户当前首选方向
behind 和该activity下面的那个Activity的方向一致
nosensor 忽略物理感应器
在java代码中设置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 设置横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 设置竖屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR); 设置重力感应。
判断屏幕的方向
if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
configChanges
如果屏幕方向配置的是感应的,在手机屏幕旋转的时候会对activity 进行重建 。这个参考横竖屏切换的生命周期的变化 —横竖屏切换生命周期变化
在webview 旋转屏幕是配置如下android:configChanges=”orientation|screenSize”
不会重新调用各个生命周期,只会执行onConfigartionChanged方法。
参考博文:
http://blog.csdn.net/ningranzuozuo/article/details/50474386
关注微信公众号,每天都有优质技术文章,搞笑GIF图片推送哦。