Android 开发中禁止屏幕自动旋转

在 iOS 开发中,可以在工程属性里设置全局支持的屏幕朝向。对于只需要支持竖屏显示的应用,在 Device Orientation 中只保留 Portrait,取消选择 Landscape Left, Landscape Right, Upside Down 即可。也可以单独针对某个 View Controller 设置屏幕朝向,实现 UIViewController 的 supportedInterfaceOrientations 方法即可。

团队中的 Android Developer 没处理过这种问题,于是我顺便了解了一下。发现 Android 似乎没有方法全局进行设置,只能针对 Activity 进行设置。

一种方法是在需要限制屏幕旋转的 Activity 的 onCreate 方法里,加入一句:

1
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

另外一种方法,是在 Androidmanifest.xml 中为需要限制屏幕旋转的 Activity 都添加属性:

1
android:screenOrientation="portrait"

如果需要全局进行限制,自然是采取前一种方法较好。可以让工程中的所有 Activity 都继承于一个基类 BaseActivity,那只须在 BaseActivity 里调用 setRequestedOrientation 即可。