3

嗨,我有一个使用 ScreenOrientation.LANDSCAPE_SENSOR 创建的 andengine 应用程序:

@Override
public EngineOptions onCreateEngineOptions() {
    DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    CAMERA_WIDTH = displaymetrics.widthPixels;
    CAMERA_HEIGHT = displaymetrics.heightPixels;
    camera = new ZoomCamera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
    EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
    engineOptions.getAudioOptions().setNeedsSound(true);

但是当我旋转我已经尝试添加的设备时没有任何反应

android:configChanges="orientation"
android:screenOrientation="sensor"

像这样

  <activity
            android:name=".activities.AquaActivity"
            android:configChanges="orientation"
            android:screenOrientation="sensor"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

它似乎从这个开始识别方向,但是在运行应用程序时方向没有改变

我必须做一些特别的事情来让它工作吗?

4

1 回答 1

2

您不需要 XML 设置,也不需要做任何特别的事情。我正在使用 LANDSCAPE_SENSOR,而清单中没有多余的行。您的代码也没有明显错误。

如果您的应用程序正常工作(即场景显示正确,一切都移动等),并且其他应用程序/游戏正确旋转屏幕,那么我想到的最后一件事是您可能使用的 Android SDK 版本比 GingerBread (API 9 级),这是 LANDSCAPE_SENSOR 工作的要求。

于 2013-06-05T15:06:53.537 回答