无论如何,这听起来可能是一个新手问题,因为我是 Android 开发新手。
基本上,我需要做什么来防止 Activity 改变其旋转,但同时我需要检测设备方向变化,即设备方向是否已从顶部更改为底部,或从顶部更改为左肖像等。
在 iOS 中,有一个类似的 - (BOOL)shouldAutorotateToInterfaceOrientation
,您可以在其中处理设备方向更改并告诉 View 是否希望它自动旋转。
请注意,不要对加速度计数据进行任何手动数据处理。
所以基本上我想检测设备的方向变化并防止 Activity 旋转。 我还在使用传感器的数据来检测震动。但 Android 内部会进行一些信号过滤,以便决定何时旋转 UI。所以基本上我需要 catch 那个事件。任何人都可以帮忙吗?
我的问题的简单表述:我需要检测 Android 设备方向变化,而无需手动处理传感器数据,同时保持 Activity 方向坚持某个方向
最佳答案
如果您想将一个方向固定为横向,请转到 AndroidManifest 并在您的 Activity 中执行此操作
<activity
android:label="@string/app_name"
android:name=".LoginScreen"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
添加此...如果是纵向,则将其更改为 android:screenOrientation="portrait"
有关动议,请参阅 @thepoosh 链接,即 http://www.techrepublic.com/blog/app-builder/a-quick-tutorial-on-coding-androids-accelerometer/472
关于android - 如何防止屏幕自动旋转但防止 Activity 旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11221745/