如何防止屏幕自转但阻止活动旋转

时间:2012-06-27 07:57:00

标签: android android-activity accelerometer autorotate

这听起来可能是一个新手问题,无论如何我是Android开发的新手。

基本上我需要这样做以防止活动改变其旋转但同时我需要检测设备方向的变化,即设备方向是从顶部改变为按钮,还是从顶部到左侧纵向等。 / p>

在iOS中有一个模拟- (BOOL)shouldAutorotateToInterfaceOrientation,您可以在其中处理设备方向更改并告诉视图您是否要自动旋转。 请注意,没有任何加速度计数据的手动数据处理。

所以基本上我想检测DEVICE的方向变化并防止Activity旋转。 我也在玩传感器的数据来检测抖动。但内部Android会对信号进行一些过滤,以决定何时旋转UI。所以基本上我需要抓住那个事件。有人可以帮忙吗?


我的问题的简单表述:我需要检测Android设备方向更改,而无需手动使用传感器数据,同时保持活动方向坚持某种方向

3 个答案:

答案 0 :(得分:2)

如果您想要将一个方向修复为横向,请转到AndroidManifest和您的活动中,这就是您需要做的事情

<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

答案 1 :(得分:1)

您正在寻找的是XML android:screenOrientation="portrait"并使用传感器来查找手机的位置。

android orientation.

accelerometer.

答案 2 :(得分:1)