这些天在学习有关视频监控的项目,遇到最烦人的问题就是在播放视频的时候,如果屏幕切换横屏,则原来视频就黑屏了,想来想去也不知道是哪出的问题。后来查阅了资料才了解到android屏幕旋转的机制:
在默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致当前activity发生onDestroy-> onCreate,这样会重新构造当前activity和界面布局,如果在Camera界面,则表现为卡顿或者黑屏一段时间。如果是在横竖屏UI设计方面,那么想很好地支持屏幕旋转,则建议在res中建立layout-land和layout-port两个文件夹,把横屏和竖屏的布局文件分别放入对应的layout文件夹中。
好了,以下总结一下如何设置横屏:
1. AndroidManifest.xml设置
如果仅仅想设置横竖屏,可以直接添加如下代码:
android:screenOrientation="landscape"
//横屏设置;
android:screenOrientation="portrait"
//竖屏设置;
这种方法简单粗暴,它的优点是即使屏幕旋转,Activity也不会重新onCreate;但是缺点也十分明显,它屏幕只有一个方向。